<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns:yui="http://yuilibrary.com/rdf/1.0/yui.rdf#">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
	<title>API: calendar   Calendar.js  (YUI Library)</title>

	<link rel="stylesheet" type="text/css" href="assets/reset-fonts-grids-min.css" />
	<link rel="stylesheet" type="text/css" href="assets/api.css" />

    <script type="text/javascript" src="assets/api-js"></script>
    <script type="text/javascript" src="assets/ac-js"></script>
</head>

<body id="yahoo-com">

<div id="doc3" class="yui-t2">
	<div id="hd">
        <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
        <h3>Calendar&nbsp; <span class="subtitle">2.8.1</span></h3>
        <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
            &gt; <a href="./module_calendar.html" title="calendar">calendar</a>
                
                 &gt; Calendar.js (source view) 
        <form onsubmit="return false">
            <div id="propertysearch">
                Search: <input autocomplete="off" id="searchinput" />
                <div id="searchresults">
                    &nbsp;
                </div>
            </div>
        </form>
	</div>

	<div id="bd">
		<div id="yui-main">
			<div class="yui-b">
            <form action="#" name="yui-classopts-form" method="get" id="yui-classopts-form">
                <fieldset>
                    <legend>Filters</legend>
                <span class="classopts"><input type="checkbox" name="show_private" id="show_private" /> <label for="show_private">Show Private</label></span>
                <span class="classopts"><input type="checkbox" name="show_protected" id="show_protected" /> <label for="show_protected">Show Protected</label></span>
                <span class="classopts"><input type="checkbox" name="show_deprecated" id="show_deprecated" /> <label for="show_deprecated">Show Deprecated</label></span>
                </fieldset>
            </form>

                    <div id="srcout">
                        <style>
                            #doc3 .classopts { display:none; }
                        </style>
                        <div class="highlight"><pre><span class="cm">/**</span>
<span class="cm">* The Calendar component is a UI control that enables users to choose one or more dates from a graphical calendar presented in a one-month or</span>
<span class="cm">* multi-month interface. Calendars are generated entirely via script and can be navigated without any page refreshes.</span>
<span class="cm">* @module    calendar</span>
<span class="cm">* @title    Calendar</span>
<span class="cm">* @namespace  YAHOO.widget</span>
<span class="cm">* @requires  yahoo,dom,event</span>
<span class="cm">*/</span>
<span class="p">(</span><span class="kd">function</span><span class="p">(){</span>

    <span class="kd">var</span> <span class="nx">Dom</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="p">,</span>
        <span class="nx">Event</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Event</span><span class="p">,</span>
        <span class="nx">Lang</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">lang</span><span class="p">,</span>
        <span class="nx">DateMath</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">DateMath</span><span class="p">;</span>

<span class="cm">/**</span>
<span class="cm">* Calendar is the base class for the Calendar widget. In its most basic</span>
<span class="cm">* implementation, it has the ability to render a calendar widget on the page</span>
<span class="cm">* that can be manipulated to select a single date, move back and forth between</span>
<span class="cm">* months and years.</span>
<span class="cm">* &lt;p&gt;To construct the placeholder for the calendar widget, the code is as</span>
<span class="cm">* follows:</span>
<span class="cm">*   &lt;xmp&gt;</span>
<span class="cm">*       &lt;div id=&quot;calContainer&quot;&gt;&lt;/div&gt;</span>
<span class="cm">*   &lt;/xmp&gt;</span>
<span class="cm">* &lt;/p&gt;</span>
<span class="cm">* &lt;p&gt;</span>
<span class="cm">* &lt;strong&gt;NOTE: As of 2.4.0, the constructor&#39;s ID argument is optional.&lt;/strong&gt;</span>
<span class="cm">* The Calendar can be constructed by simply providing a container ID string, </span>
<span class="cm">* or a reference to a container DIV HTMLElement (the element needs to exist </span>
<span class="cm">* in the document).</span>
<span class="cm">* </span>
<span class="cm">* E.g.:</span>
<span class="cm">*   &lt;xmp&gt;</span>
<span class="cm">*       var c = new YAHOO.widget.Calendar(&quot;calContainer&quot;, configOptions);</span>
<span class="cm">*   &lt;/xmp&gt;</span>
<span class="cm">* or:</span>
<span class="cm">*   &lt;xmp&gt;</span>
<span class="cm">*       var containerDiv = YAHOO.util.Dom.get(&quot;calContainer&quot;);</span>
<span class="cm">*       var c = new YAHOO.widget.Calendar(containerDiv, configOptions);</span>
<span class="cm">*   &lt;/xmp&gt;</span>
<span class="cm">* &lt;/p&gt;</span>
<span class="cm">* &lt;p&gt;</span>
<span class="cm">* If not provided, the ID will be generated from the container DIV ID by adding an &quot;_t&quot; suffix.</span>
<span class="cm">* For example if an ID is not provided, and the container&#39;s ID is &quot;calContainer&quot;, the Calendar&#39;s ID will be set to &quot;calContainer_t&quot;.</span>
<span class="cm">* &lt;/p&gt;</span>
<span class="cm">* </span>
<span class="cm">* @namespace YAHOO.widget</span>
<span class="cm">* @class Calendar</span>
<span class="cm">* @constructor</span>
<span class="cm">* @param {String} id optional The id of the table element that will represent the Calendar widget. As of 2.4.0, this argument is optional.</span>
<span class="cm">* @param {String | HTMLElement} container The id of the container div element that will wrap the Calendar table, or a reference to a DIV element which exists in the document.</span>
<span class="cm">* @param {Object} config optional The configuration object containing the initial configuration values for the Calendar.</span>
<span class="cm">*/</span>
<span class="kd">function</span> <span class="nx">Calendar</span><span class="p">(</span><span class="nx">id</span><span class="p">,</span> <span class="nx">containerId</span><span class="p">,</span> <span class="nx">config</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">this</span><span class="p">.</span><span class="nx">init</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span>
<span class="p">}</span>

<span class="cm">/**</span>
<span class="cm">* The path to be used for images loaded for the Calendar</span>
<span class="cm">* @property YAHOO.widget.Calendar.IMG_ROOT</span>
<span class="cm">* @static</span>
<span class="cm">* @deprecated   You can now customize images by overriding the calclose, calnavleft and calnavright default CSS classes for the close icon, left arrow and right arrow respectively</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">IMG_ROOT</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>

<span class="cm">/**</span>
<span class="cm">* Type constant used for renderers to represent an individual date (M/D/Y)</span>
<span class="cm">* @property YAHOO.widget.Calendar.DATE</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">DATE</span> <span class="o">=</span> <span class="s2">&quot;D&quot;</span><span class="p">;</span>

<span class="cm">/**</span>
<span class="cm">* Type constant used for renderers to represent an individual date across any year (M/D)</span>
<span class="cm">* @property YAHOO.widget.Calendar.MONTH_DAY</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">MONTH_DAY</span> <span class="o">=</span> <span class="s2">&quot;MD&quot;</span><span class="p">;</span>

<span class="cm">/**</span>
<span class="cm">* Type constant used for renderers to represent a weekday</span>
<span class="cm">* @property YAHOO.widget.Calendar.WEEKDAY</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">WEEKDAY</span> <span class="o">=</span> <span class="s2">&quot;WD&quot;</span><span class="p">;</span>

<span class="cm">/**</span>
<span class="cm">* Type constant used for renderers to represent a range of individual dates (M/D/Y-M/D/Y)</span>
<span class="cm">* @property YAHOO.widget.Calendar.RANGE</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">RANGE</span> <span class="o">=</span> <span class="s2">&quot;R&quot;</span><span class="p">;</span>

<span class="cm">/**</span>
<span class="cm">* Type constant used for renderers to represent a month across any year</span>
<span class="cm">* @property YAHOO.widget.Calendar.MONTH</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">MONTH</span> <span class="o">=</span> <span class="s2">&quot;M&quot;</span><span class="p">;</span>

<span class="cm">/**</span>
<span class="cm">* Constant that represents the total number of date cells that are displayed in a given month</span>
<span class="cm">* @property YAHOO.widget.Calendar.DISPLAY_DAYS</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type Number</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">DISPLAY_DAYS</span> <span class="o">=</span> <span class="mi">42</span><span class="p">;</span>

<span class="cm">/**</span>
<span class="cm">* Constant used for halting the execution of the remainder of the render stack</span>
<span class="cm">* @property YAHOO.widget.Calendar.STOP_RENDER</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">STOP_RENDER</span> <span class="o">=</span> <span class="s2">&quot;S&quot;</span><span class="p">;</span>

<span class="cm">/**</span>
<span class="cm">* Constant used to represent short date field string formats (e.g. Tu or Feb)</span>
<span class="cm">* @property YAHOO.widget.Calendar.SHORT</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">SHORT</span> <span class="o">=</span> <span class="s2">&quot;short&quot;</span><span class="p">;</span>

<span class="cm">/**</span>
<span class="cm">* Constant used to represent long date field string formats (e.g. Monday or February)</span>
<span class="cm">* @property YAHOO.widget.Calendar.LONG</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">LONG</span> <span class="o">=</span> <span class="s2">&quot;long&quot;</span><span class="p">;</span>

<span class="cm">/**</span>
<span class="cm">* Constant used to represent medium date field string formats (e.g. Mon)</span>
<span class="cm">* @property YAHOO.widget.Calendar.MEDIUM</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">MEDIUM</span> <span class="o">=</span> <span class="s2">&quot;medium&quot;</span><span class="p">;</span>

<span class="cm">/**</span>
<span class="cm">* Constant used to represent single character date field string formats (e.g. M, T, W)</span>
<span class="cm">* @property YAHOO.widget.Calendar.ONE_CHAR</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">ONE_CHAR</span> <span class="o">=</span> <span class="s2">&quot;1char&quot;</span><span class="p">;</span>

<span class="cm">/**</span>
<span class="cm">* The set of default Config property keys and values for the Calendar.</span>
<span class="cm">*</span>
<span class="cm">* &lt;p&gt;</span>
<span class="cm">* NOTE: This property is made public in order to allow users to change </span>
<span class="cm">* the default values of configuration properties. Users should not </span>
<span class="cm">* modify the key string, unless they are overriding the Calendar implementation</span>
<span class="cm">* &lt;/p&gt;</span>
<span class="cm">*</span>
<span class="cm">* &lt;p&gt;</span>
<span class="cm">* The property is an object with key/value pairs, the key being the </span>
<span class="cm">* uppercase configuration property name and the value being an object </span>
<span class="cm">* literal with a key string property, and a value property, specifying the </span>
<span class="cm">* default value of the property. To override a default value, you can set</span>
<span class="cm">* the value property, for example, &lt;code&gt;YAHOO.widget.Calendar.DEFAULT_CONFIG.MULTI_SELECT.value = true;&lt;/code&gt;</span>
<span class="cm">* </span>
<span class="cm">* @property YAHOO.widget.Calendar.DEFAULT_CONFIG</span>
<span class="cm">* @static</span>
<span class="cm">* @type Object</span>
<span class="cm">*/</span>

<span class="nx">Calendar</span><span class="p">.</span><span class="nx">DEFAULT_CONFIG</span> <span class="o">=</span> <span class="p">{</span>
    <span class="nx">YEAR_OFFSET</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;year_offset&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">0</span><span class="p">,</span> <span class="nx">supercedes</span><span class="o">:</span><span class="p">[</span><span class="s2">&quot;pagedate&quot;</span><span class="p">,</span> <span class="s2">&quot;selected&quot;</span><span class="p">,</span> <span class="s2">&quot;mindate&quot;</span><span class="p">,</span><span class="s2">&quot;maxdate&quot;</span><span class="p">]},</span>
    <span class="nx">TODAY</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;today&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="k">new</span> <span class="nb">Date</span><span class="p">(),</span> <span class="nx">supercedes</span><span class="o">:</span><span class="p">[</span><span class="s2">&quot;pagedate&quot;</span><span class="p">]},</span> 
    <span class="nx">PAGEDATE</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;pagedate&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">null</span><span class="p">},</span>
    <span class="nx">SELECTED</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;selected&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="p">[]},</span>
    <span class="nx">TITLE</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;title&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;&quot;</span><span class="p">},</span>
    <span class="nx">CLOSE</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;close&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">false</span><span class="p">},</span>
    <span class="nx">IFRAME</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;iframe&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="p">(</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">ua</span><span class="p">.</span><span class="nx">ie</span> <span class="o">&amp;&amp;</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">ua</span><span class="p">.</span><span class="nx">ie</span> <span class="o">&lt;=</span> <span class="mi">6</span><span class="p">)</span> <span class="o">?</span> <span class="kc">true</span> <span class="o">:</span> <span class="kc">false</span><span class="p">},</span>
    <span class="nx">MINDATE</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;mindate&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">null</span><span class="p">},</span>
    <span class="nx">MAXDATE</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;maxdate&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">null</span><span class="p">},</span>
    <span class="nx">MULTI_SELECT</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;multi_select&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">false</span><span class="p">},</span>
    <span class="nx">START_WEEKDAY</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;start_weekday&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">0</span><span class="p">},</span>
    <span class="nx">SHOW_WEEKDAYS</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;show_weekdays&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">true</span><span class="p">},</span>
    <span class="nx">SHOW_WEEK_HEADER</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;show_week_header&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">false</span><span class="p">},</span>
    <span class="nx">SHOW_WEEK_FOOTER</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;show_week_footer&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">false</span><span class="p">},</span>
    <span class="nx">HIDE_BLANK_WEEKS</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;hide_blank_weeks&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">false</span><span class="p">},</span>
    <span class="nx">NAV_ARROW_LEFT</span><span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;nav_arrow_left&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">null</span><span class="p">}</span> <span class="p">,</span>
    <span class="nx">NAV_ARROW_RIGHT</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;nav_arrow_right&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">null</span><span class="p">}</span> <span class="p">,</span>
    <span class="nx">MONTHS_SHORT</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;months_short&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="p">[</span><span class="s2">&quot;Jan&quot;</span><span class="p">,</span> <span class="s2">&quot;Feb&quot;</span><span class="p">,</span> <span class="s2">&quot;Mar&quot;</span><span class="p">,</span> <span class="s2">&quot;Apr&quot;</span><span class="p">,</span> <span class="s2">&quot;May&quot;</span><span class="p">,</span> <span class="s2">&quot;Jun&quot;</span><span class="p">,</span> <span class="s2">&quot;Jul&quot;</span><span class="p">,</span> <span class="s2">&quot;Aug&quot;</span><span class="p">,</span> <span class="s2">&quot;Sep&quot;</span><span class="p">,</span> <span class="s2">&quot;Oct&quot;</span><span class="p">,</span> <span class="s2">&quot;Nov&quot;</span><span class="p">,</span> <span class="s2">&quot;Dec&quot;</span><span class="p">]},</span>
    <span class="nx">MONTHS_LONG</span><span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;months_long&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="p">[</span><span class="s2">&quot;January&quot;</span><span class="p">,</span> <span class="s2">&quot;February&quot;</span><span class="p">,</span> <span class="s2">&quot;March&quot;</span><span class="p">,</span> <span class="s2">&quot;April&quot;</span><span class="p">,</span> <span class="s2">&quot;May&quot;</span><span class="p">,</span> <span class="s2">&quot;June&quot;</span><span class="p">,</span> <span class="s2">&quot;July&quot;</span><span class="p">,</span> <span class="s2">&quot;August&quot;</span><span class="p">,</span> <span class="s2">&quot;September&quot;</span><span class="p">,</span> <span class="s2">&quot;October&quot;</span><span class="p">,</span> <span class="s2">&quot;November&quot;</span><span class="p">,</span> <span class="s2">&quot;December&quot;</span><span class="p">]},</span>
    <span class="nx">WEEKDAYS_1CHAR</span><span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;weekdays_1char&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="p">[</span><span class="s2">&quot;S&quot;</span><span class="p">,</span> <span class="s2">&quot;M&quot;</span><span class="p">,</span> <span class="s2">&quot;T&quot;</span><span class="p">,</span> <span class="s2">&quot;W&quot;</span><span class="p">,</span> <span class="s2">&quot;T&quot;</span><span class="p">,</span> <span class="s2">&quot;F&quot;</span><span class="p">,</span> <span class="s2">&quot;S&quot;</span><span class="p">]},</span>
    <span class="nx">WEEKDAYS_SHORT</span><span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;weekdays_short&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="p">[</span><span class="s2">&quot;Su&quot;</span><span class="p">,</span> <span class="s2">&quot;Mo&quot;</span><span class="p">,</span> <span class="s2">&quot;Tu&quot;</span><span class="p">,</span> <span class="s2">&quot;We&quot;</span><span class="p">,</span> <span class="s2">&quot;Th&quot;</span><span class="p">,</span> <span class="s2">&quot;Fr&quot;</span><span class="p">,</span> <span class="s2">&quot;Sa&quot;</span><span class="p">]},</span>
    <span class="nx">WEEKDAYS_MEDIUM</span><span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;weekdays_medium&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="p">[</span><span class="s2">&quot;Sun&quot;</span><span class="p">,</span> <span class="s2">&quot;Mon&quot;</span><span class="p">,</span> <span class="s2">&quot;Tue&quot;</span><span class="p">,</span> <span class="s2">&quot;Wed&quot;</span><span class="p">,</span> <span class="s2">&quot;Thu&quot;</span><span class="p">,</span> <span class="s2">&quot;Fri&quot;</span><span class="p">,</span> <span class="s2">&quot;Sat&quot;</span><span class="p">]},</span>
    <span class="nx">WEEKDAYS_LONG</span><span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;weekdays_long&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="p">[</span><span class="s2">&quot;Sunday&quot;</span><span class="p">,</span> <span class="s2">&quot;Monday&quot;</span><span class="p">,</span> <span class="s2">&quot;Tuesday&quot;</span><span class="p">,</span> <span class="s2">&quot;Wednesday&quot;</span><span class="p">,</span> <span class="s2">&quot;Thursday&quot;</span><span class="p">,</span> <span class="s2">&quot;Friday&quot;</span><span class="p">,</span> <span class="s2">&quot;Saturday&quot;</span><span class="p">]},</span>
    <span class="nx">LOCALE_MONTHS</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;locale_months&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;long&quot;</span><span class="p">},</span>
    <span class="nx">LOCALE_WEEKDAYS</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;locale_weekdays&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;short&quot;</span><span class="p">},</span>
    <span class="nx">DATE_DELIMITER</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;date_delimiter&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;,&quot;</span><span class="p">},</span>
    <span class="nx">DATE_FIELD_DELIMITER</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;date_field_delimiter&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;/&quot;</span><span class="p">},</span>
    <span class="nx">DATE_RANGE_DELIMITER</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;date_range_delimiter&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;-&quot;</span><span class="p">},</span>
    <span class="nx">MY_MONTH_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_month_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">1</span><span class="p">},</span>
    <span class="nx">MY_YEAR_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_year_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">2</span><span class="p">},</span>
    <span class="nx">MD_MONTH_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;md_month_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">1</span><span class="p">},</span>
    <span class="nx">MD_DAY_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;md_day_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">2</span><span class="p">},</span>
    <span class="nx">MDY_MONTH_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;mdy_month_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">1</span><span class="p">},</span>
    <span class="nx">MDY_DAY_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;mdy_day_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">2</span><span class="p">},</span>
    <span class="nx">MDY_YEAR_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;mdy_year_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">3</span><span class="p">},</span>
    <span class="nx">MY_LABEL_MONTH_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_label_month_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">1</span><span class="p">},</span>
    <span class="nx">MY_LABEL_YEAR_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_label_year_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">2</span><span class="p">},</span>
    <span class="nx">MY_LABEL_MONTH_SUFFIX</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_label_month_suffix&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot; &quot;</span><span class="p">},</span>
    <span class="nx">MY_LABEL_YEAR_SUFFIX</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_label_year_suffix&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;&quot;</span><span class="p">},</span>
    <span class="nx">NAV</span><span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;navigator&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span> <span class="kc">null</span><span class="p">},</span>
    <span class="nx">STRINGS</span> <span class="o">:</span> <span class="p">{</span> 
        <span class="nx">key</span><span class="o">:</span><span class="s2">&quot;strings&quot;</span><span class="p">,</span>
        <span class="nx">value</span><span class="o">:</span> <span class="p">{</span>
            <span class="nx">previousMonth</span> <span class="o">:</span> <span class="s2">&quot;Previous Month&quot;</span><span class="p">,</span>
            <span class="nx">nextMonth</span> <span class="o">:</span> <span class="s2">&quot;Next Month&quot;</span><span class="p">,</span>
            <span class="nx">close</span><span class="o">:</span> <span class="s2">&quot;Close&quot;</span>
        <span class="p">},</span>
        <span class="nx">supercedes</span> <span class="o">:</span> <span class="p">[</span><span class="s2">&quot;close&quot;</span><span class="p">,</span> <span class="s2">&quot;title&quot;</span><span class="p">]</span>
    <span class="p">}</span>
<span class="p">};</span>

<span class="cm">/**</span>
<span class="cm">* The set of default Config property keys and values for the Calendar</span>
<span class="cm">* @property YAHOO.widget.Calendar._DEFAULT_CONFIG</span>
<span class="cm">* @deprecated Made public. See the public DEFAULT_CONFIG property for details</span>
<span class="cm">* @final</span>
<span class="cm">* @static</span>
<span class="cm">* @private</span>
<span class="cm">* @type Object</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">_DEFAULT_CONFIG</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">DEFAULT_CONFIG</span><span class="p">;</span>

<span class="kd">var</span> <span class="nx">DEF_CFG</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">DEFAULT_CONFIG</span><span class="p">;</span>

<span class="cm">/**</span>
<span class="cm">* The set of Custom Event types supported by the Calendar</span>
<span class="cm">* @property YAHOO.widget.Calendar._EVENT_TYPES</span>
<span class="cm">* @final</span>
<span class="cm">* @static</span>
<span class="cm">* @private</span>
<span class="cm">* @type Object</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">_EVENT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
    <span class="nx">BEFORE_SELECT</span> <span class="o">:</span> <span class="s2">&quot;beforeSelect&quot;</span><span class="p">,</span> 
    <span class="nx">SELECT</span> <span class="o">:</span> <span class="s2">&quot;select&quot;</span><span class="p">,</span>
    <span class="nx">BEFORE_DESELECT</span> <span class="o">:</span> <span class="s2">&quot;beforeDeselect&quot;</span><span class="p">,</span>
    <span class="nx">DESELECT</span> <span class="o">:</span> <span class="s2">&quot;deselect&quot;</span><span class="p">,</span>
    <span class="nx">CHANGE_PAGE</span> <span class="o">:</span> <span class="s2">&quot;changePage&quot;</span><span class="p">,</span>
    <span class="nx">BEFORE_RENDER</span> <span class="o">:</span> <span class="s2">&quot;beforeRender&quot;</span><span class="p">,</span>
    <span class="nx">RENDER</span> <span class="o">:</span> <span class="s2">&quot;render&quot;</span><span class="p">,</span>
    <span class="nx">BEFORE_DESTROY</span> <span class="o">:</span> <span class="s2">&quot;beforeDestroy&quot;</span><span class="p">,</span>
    <span class="nx">DESTROY</span> <span class="o">:</span> <span class="s2">&quot;destroy&quot;</span><span class="p">,</span>
    <span class="nx">RESET</span> <span class="o">:</span> <span class="s2">&quot;reset&quot;</span><span class="p">,</span>
    <span class="nx">CLEAR</span> <span class="o">:</span> <span class="s2">&quot;clear&quot;</span><span class="p">,</span>
    <span class="nx">BEFORE_HIDE</span> <span class="o">:</span> <span class="s2">&quot;beforeHide&quot;</span><span class="p">,</span>
    <span class="nx">HIDE</span> <span class="o">:</span> <span class="s2">&quot;hide&quot;</span><span class="p">,</span>
    <span class="nx">BEFORE_SHOW</span> <span class="o">:</span> <span class="s2">&quot;beforeShow&quot;</span><span class="p">,</span>
    <span class="nx">SHOW</span> <span class="o">:</span> <span class="s2">&quot;show&quot;</span><span class="p">,</span>
    <span class="nx">BEFORE_HIDE_NAV</span> <span class="o">:</span> <span class="s2">&quot;beforeHideNav&quot;</span><span class="p">,</span>
    <span class="nx">HIDE_NAV</span> <span class="o">:</span> <span class="s2">&quot;hideNav&quot;</span><span class="p">,</span>
    <span class="nx">BEFORE_SHOW_NAV</span> <span class="o">:</span> <span class="s2">&quot;beforeShowNav&quot;</span><span class="p">,</span>
    <span class="nx">SHOW_NAV</span> <span class="o">:</span> <span class="s2">&quot;showNav&quot;</span><span class="p">,</span>
    <span class="nx">BEFORE_RENDER_NAV</span> <span class="o">:</span> <span class="s2">&quot;beforeRenderNav&quot;</span><span class="p">,</span>
    <span class="nx">RENDER_NAV</span> <span class="o">:</span> <span class="s2">&quot;renderNav&quot;</span>
<span class="p">};</span>

<span class="cm">/**</span>
<span class="cm">* The set of default style constants for the Calendar</span>
<span class="cm">* @property YAHOO.widget.Calendar.STYLES</span>
<span class="cm">* @static</span>
<span class="cm">* @type Object An object with name/value pairs for the class name identifier/value.</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">STYLES</span> <span class="o">=</span> <span class="p">{</span>
    <span class="nx">CSS_ROW_HEADER</span><span class="o">:</span> <span class="s2">&quot;calrowhead&quot;</span><span class="p">,</span>
    <span class="nx">CSS_ROW_FOOTER</span><span class="o">:</span> <span class="s2">&quot;calrowfoot&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL</span> <span class="o">:</span> <span class="s2">&quot;calcell&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL_SELECTOR</span> <span class="o">:</span> <span class="s2">&quot;selector&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL_SELECTED</span> <span class="o">:</span> <span class="s2">&quot;selected&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL_SELECTABLE</span> <span class="o">:</span> <span class="s2">&quot;selectable&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL_RESTRICTED</span> <span class="o">:</span> <span class="s2">&quot;restricted&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL_TODAY</span> <span class="o">:</span> <span class="s2">&quot;today&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL_OOM</span> <span class="o">:</span> <span class="s2">&quot;oom&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL_OOB</span> <span class="o">:</span> <span class="s2">&quot;previous&quot;</span><span class="p">,</span>
    <span class="nx">CSS_HEADER</span> <span class="o">:</span> <span class="s2">&quot;calheader&quot;</span><span class="p">,</span>
    <span class="nx">CSS_HEADER_TEXT</span> <span class="o">:</span> <span class="s2">&quot;calhead&quot;</span><span class="p">,</span>
    <span class="nx">CSS_BODY</span> <span class="o">:</span> <span class="s2">&quot;calbody&quot;</span><span class="p">,</span>
    <span class="nx">CSS_WEEKDAY_CELL</span> <span class="o">:</span> <span class="s2">&quot;calweekdaycell&quot;</span><span class="p">,</span>
    <span class="nx">CSS_WEEKDAY_ROW</span> <span class="o">:</span> <span class="s2">&quot;calweekdayrow&quot;</span><span class="p">,</span>
    <span class="nx">CSS_FOOTER</span> <span class="o">:</span> <span class="s2">&quot;calfoot&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CALENDAR</span> <span class="o">:</span> <span class="s2">&quot;yui-calendar&quot;</span><span class="p">,</span>
    <span class="nx">CSS_SINGLE</span> <span class="o">:</span> <span class="s2">&quot;single&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CONTAINER</span> <span class="o">:</span> <span class="s2">&quot;yui-calcontainer&quot;</span><span class="p">,</span>
    <span class="nx">CSS_NAV_LEFT</span> <span class="o">:</span> <span class="s2">&quot;calnavleft&quot;</span><span class="p">,</span>
    <span class="nx">CSS_NAV_RIGHT</span> <span class="o">:</span> <span class="s2">&quot;calnavright&quot;</span><span class="p">,</span>
    <span class="nx">CSS_NAV</span> <span class="o">:</span> <span class="s2">&quot;calnav&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CLOSE</span> <span class="o">:</span> <span class="s2">&quot;calclose&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL_TOP</span> <span class="o">:</span> <span class="s2">&quot;calcelltop&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL_LEFT</span> <span class="o">:</span> <span class="s2">&quot;calcellleft&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL_RIGHT</span> <span class="o">:</span> <span class="s2">&quot;calcellright&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL_BOTTOM</span> <span class="o">:</span> <span class="s2">&quot;calcellbottom&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL_HOVER</span> <span class="o">:</span> <span class="s2">&quot;calcellhover&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL_HIGHLIGHT1</span> <span class="o">:</span> <span class="s2">&quot;highlight1&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL_HIGHLIGHT2</span> <span class="o">:</span> <span class="s2">&quot;highlight2&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL_HIGHLIGHT3</span> <span class="o">:</span> <span class="s2">&quot;highlight3&quot;</span><span class="p">,</span>
    <span class="nx">CSS_CELL_HIGHLIGHT4</span> <span class="o">:</span> <span class="s2">&quot;highlight4&quot;</span><span class="p">,</span>
    <span class="nx">CSS_WITH_TITLE</span><span class="o">:</span> <span class="s2">&quot;withtitle&quot;</span><span class="p">,</span>
    <span class="nx">CSS_FIXED_SIZE</span><span class="o">:</span> <span class="s2">&quot;fixedsize&quot;</span><span class="p">,</span>
    <span class="nx">CSS_LINK_CLOSE</span><span class="o">:</span> <span class="s2">&quot;link-close&quot;</span>
<span class="p">};</span>

<span class="cm">/**</span>
<span class="cm">* The set of default style constants for the Calendar</span>
<span class="cm">* @property YAHOO.widget.Calendar._STYLES</span>
<span class="cm">* @deprecated Made public. See the public STYLES property for details</span>
<span class="cm">* @final</span>
<span class="cm">* @static</span>
<span class="cm">* @private</span>
<span class="cm">* @type Object</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">_STYLES</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">STYLES</span><span class="p">;</span>

<span class="nx">Calendar</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="p">{</span>

    <span class="cm">/**</span>
<span class="cm">    * The configuration object used to set up the calendars various locale and style options.</span>
<span class="cm">    * @property Config</span>
<span class="cm">    * @private</span>
<span class="cm">    * @deprecated Configuration properties should be set by calling Calendar.cfg.setProperty.</span>
<span class="cm">    * @type Object</span>
<span class="cm">    */</span>
    <span class="nx">Config</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>

    <span class="cm">/**</span>
<span class="cm">    * The parent CalendarGroup, only to be set explicitly by the parent group</span>
<span class="cm">    * @property parent</span>
<span class="cm">    * @type CalendarGroup</span>
<span class="cm">    */</span> 
    <span class="nx">parent</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>

    <span class="cm">/**</span>
<span class="cm">    * The index of this item in the parent group</span>
<span class="cm">    * @property index</span>
<span class="cm">    * @type Number</span>
<span class="cm">    */</span>
    <span class="nx">index</span> <span class="o">:</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span>

    <span class="cm">/**</span>
<span class="cm">    * The collection of calendar table cells</span>
<span class="cm">    * @property cells</span>
<span class="cm">    * @type HTMLTableCellElement[]</span>
<span class="cm">    */</span>
    <span class="nx">cells</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>

    <span class="cm">/**</span>
<span class="cm">    * The collection of calendar cell dates that is parallel to the cells collection. The array contains dates field arrays in the format of [YYYY, M, D].</span>
<span class="cm">    * @property cellDates</span>
<span class="cm">    * @type Array[](Number[])</span>
<span class="cm">    */</span>
    <span class="nx">cellDates</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>

    <span class="cm">/**</span>
<span class="cm">    * The id that uniquely identifies this Calendar.</span>
<span class="cm">    * @property id</span>
<span class="cm">    * @type String</span>
<span class="cm">    */</span>
    <span class="nx">id</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>

    <span class="cm">/**</span>
<span class="cm">    * The unique id associated with the Calendar&#39;s container</span>
<span class="cm">    * @property containerId</span>
<span class="cm">    * @type String</span>
<span class="cm">    */</span>
    <span class="nx">containerId</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span>

    <span class="cm">/**</span>
<span class="cm">    * The DOM element reference that points to this calendar&#39;s container element. The calendar will be inserted into this element when the shell is rendered.</span>
<span class="cm">    * @property oDomContainer</span>
<span class="cm">    * @type HTMLElement</span>
<span class="cm">    */</span>
    <span class="nx">oDomContainer</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>

    <span class="cm">/**</span>
<span class="cm">    * A Date object representing today&#39;s date.</span>
<span class="cm">    * @deprecated Use the &quot;today&quot; configuration property</span>
<span class="cm">    * @property today</span>
<span class="cm">    * @type Date</span>
<span class="cm">    */</span>
    <span class="nx">today</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>

    <span class="cm">/**</span>
<span class="cm">    * The list of render functions, along with required parameters, used to render cells. </span>
<span class="cm">    * @property renderStack</span>
<span class="cm">    * @type Array[]</span>
<span class="cm">    */</span>
    <span class="nx">renderStack</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>

    <span class="cm">/**</span>
<span class="cm">    * A copy of the initial render functions created before rendering.</span>
<span class="cm">    * @property _renderStack</span>
<span class="cm">    * @private</span>
<span class="cm">    * @type Array</span>
<span class="cm">    */</span>
    <span class="nx">_renderStack</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>

    <span class="cm">/**</span>
<span class="cm">    * A reference to the CalendarNavigator instance created for this Calendar.</span>
<span class="cm">    * Will be null if the &quot;navigator&quot; configuration property has not been set</span>
<span class="cm">    * @property oNavigator</span>
<span class="cm">    * @type CalendarNavigator</span>
<span class="cm">    */</span>
    <span class="nx">oNavigator</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>

    <span class="cm">/**</span>
<span class="cm">    * The private list of initially selected dates.</span>
<span class="cm">    * @property _selectedDates</span>
<span class="cm">    * @private</span>
<span class="cm">    * @type Array</span>
<span class="cm">    */</span>
    <span class="nx">_selectedDates</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>

    <span class="cm">/**</span>
<span class="cm">    * A map of DOM event handlers to attach to cells associated with specific CSS class names</span>
<span class="cm">    * @property domEventMap</span>
<span class="cm">    * @type Object</span>
<span class="cm">    */</span>
    <span class="nx">domEventMap</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>

    <span class="cm">/**</span>
<span class="cm">     * Protected helper used to parse Calendar constructor/init arguments.</span>
<span class="cm">     *</span>
<span class="cm">     * As of 2.4.0, Calendar supports a simpler constructor </span>
<span class="cm">     * signature. This method reconciles arguments</span>
<span class="cm">     * received in the pre 2.4.0 and 2.4.0 formats.</span>
<span class="cm">     * </span>
<span class="cm">     * @protected</span>
<span class="cm">     * @method _parseArgs</span>
<span class="cm">     * @param {Array} Function &quot;arguments&quot; array</span>
<span class="cm">     * @return {Object} Object with id, container, config properties containing</span>
<span class="cm">     * the reconciled argument values.</span>
<span class="cm">     **/</span>
    <span class="nx">_parseArgs</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">args</span><span class="p">)</span> <span class="p">{</span>
        <span class="cm">/*</span>
<span class="cm">           2.4.0 Constructors signatures</span>

<span class="cm">           new Calendar(String)</span>
<span class="cm">           new Calendar(HTMLElement)</span>
<span class="cm">           new Calendar(String, ConfigObject)</span>
<span class="cm">           new Calendar(HTMLElement, ConfigObject)</span>

<span class="cm">           Pre 2.4.0 Constructor signatures</span>

<span class="cm">           new Calendar(String, String)</span>
<span class="cm">           new Calendar(String, HTMLElement)</span>
<span class="cm">           new Calendar(String, String, ConfigObject)</span>
<span class="cm">           new Calendar(String, HTMLElement, ConfigObject)</span>
<span class="cm">         */</span>
        <span class="kd">var</span> <span class="nx">nArgs</span> <span class="o">=</span> <span class="p">{</span><span class="nx">id</span><span class="o">:</span><span class="kc">null</span><span class="p">,</span> <span class="nx">container</span><span class="o">:</span><span class="kc">null</span><span class="p">,</span> <span class="nx">config</span><span class="o">:</span><span class="kc">null</span><span class="p">};</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">args</span> <span class="o">&amp;&amp;</span> <span class="nx">args</span><span class="p">.</span><span class="nx">length</span> <span class="o">&amp;&amp;</span> <span class="nx">args</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">switch</span> <span class="p">(</span><span class="nx">args</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">case</span> <span class="mi">1</span><span class="o">:</span>
                    <span class="nx">nArgs</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
                    <span class="nx">nArgs</span><span class="p">.</span><span class="nx">container</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
                    <span class="nx">nArgs</span><span class="p">.</span><span class="nx">config</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
                    <span class="k">break</span><span class="p">;</span>
                <span class="k">case</span> <span class="mi">2</span><span class="o">:</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isObject</span><span class="p">(</span><span class="nx">args</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">args</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">tagName</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="p">(</span><span class="nx">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="k">instanceof</span> <span class="nb">String</span><span class="p">))</span> <span class="p">{</span>
                        <span class="nx">nArgs</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
                        <span class="nx">nArgs</span><span class="p">.</span><span class="nx">container</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
                        <span class="nx">nArgs</span><span class="p">.</span><span class="nx">config</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
                    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                        <span class="nx">nArgs</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
                        <span class="nx">nArgs</span><span class="p">.</span><span class="nx">container</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
                        <span class="nx">nArgs</span><span class="p">.</span><span class="nx">config</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
                    <span class="p">}</span>
                    <span class="k">break</span><span class="p">;</span>
                <span class="k">default</span><span class="o">:</span> <span class="c1">// 3+</span>
                    <span class="nx">nArgs</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
                    <span class="nx">nArgs</span><span class="p">.</span><span class="nx">container</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
                    <span class="nx">nArgs</span><span class="p">.</span><span class="nx">config</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span>
                    <span class="k">break</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Invalid constructor/init arguments&quot;</span><span class="p">,</span> <span class="s2">&quot;error&quot;</span><span class="p">);</span>
        <span class="p">}</span>
        <span class="k">return</span> <span class="nx">nArgs</span><span class="p">;</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Initializes the Calendar widget.</span>
<span class="cm">    * @method init</span>
<span class="cm">    *</span>
<span class="cm">    * @param {String} id optional The id of the table element that will represent the Calendar widget. As of 2.4.0, this argument is optional.</span>
<span class="cm">    * @param {String | HTMLElement} container The id of the container div element that will wrap the Calendar table, or a reference to a DIV element which exists in the document.</span>
<span class="cm">    * @param {Object} config optional The configuration object containing the initial configuration values for the Calendar.</span>
<span class="cm">    */</span>
    <span class="nx">init</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="p">,</span> <span class="nx">container</span><span class="p">,</span> <span class="nx">config</span><span class="p">)</span> <span class="p">{</span>
        <span class="c1">// Normalize 2.4.0, pre 2.4.0 args</span>
        <span class="kd">var</span> <span class="nx">nArgs</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseArgs</span><span class="p">(</span><span class="nx">arguments</span><span class="p">);</span>

        <span class="nx">id</span> <span class="o">=</span> <span class="nx">nArgs</span><span class="p">.</span><span class="nx">id</span><span class="p">;</span>
        <span class="nx">container</span> <span class="o">=</span> <span class="nx">nArgs</span><span class="p">.</span><span class="nx">container</span><span class="p">;</span>
        <span class="nx">config</span> <span class="o">=</span> <span class="nx">nArgs</span><span class="p">.</span><span class="nx">config</span><span class="p">;</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">container</span><span class="p">);</span>
        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">)</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Container not found in document.&quot;</span><span class="p">,</span> <span class="s2">&quot;error&quot;</span><span class="p">);</span> <span class="p">}</span>

        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">generateId</span><span class="p">();</span>
        <span class="p">}</span>
        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s2">&quot;_t&quot;</span><span class="p">;</span>
        <span class="p">}</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">id</span><span class="p">;</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">containerId</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">id</span><span class="p">;</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">logger</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">LogWriter</span><span class="p">(</span><span class="s2">&quot;Calendar &quot;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">id</span><span class="p">);</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">initEvents</span><span class="p">();</span>

        <span class="cm">/**</span>
<span class="cm">        * The Config object used to hold the configuration variables for the Calendar</span>
<span class="cm">        * @property cfg</span>
<span class="cm">        * @type YAHOO.util.Config</span>
<span class="cm">        */</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Config</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * The local object which contains the Calendar&#39;s options</span>
<span class="cm">        * @property Options</span>
<span class="cm">        * @type Object</span>
<span class="cm">        */</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">Options</span> <span class="o">=</span> <span class="p">{};</span>

        <span class="cm">/**</span>
<span class="cm">        * The local object which contains the Calendar&#39;s locale settings</span>
<span class="cm">        * @property Locale</span>
<span class="cm">        * @type Object</span>
<span class="cm">        */</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span> <span class="o">=</span> <span class="p">{};</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">initStyles</span><span class="p">();</span>

        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CONTAINER</span><span class="p">);</span>
        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_SINGLE</span><span class="p">);</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">cellDates</span> <span class="o">=</span> <span class="p">[];</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">cells</span> <span class="o">=</span> <span class="p">[];</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span> <span class="o">=</span> <span class="p">[];</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">_renderStack</span> <span class="o">=</span> <span class="p">[];</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">setupConfig</span><span class="p">();</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">config</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">applyConfig</span><span class="p">(</span><span class="nx">config</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="p">}</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">fireQueue</span><span class="p">();</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">today</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;today&quot;</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Default Config listener for the iframe property. If the iframe config property is set to true, </span>
<span class="cm">    * renders the built-in IFRAME shim if the container is relatively or absolutely positioned.</span>
<span class="cm">    * </span>
<span class="cm">    * @method configIframe</span>
<span class="cm">    */</span>
    <span class="nx">configIframe</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">useIframe</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
    
        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">inDocument</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">))</span> <span class="p">{</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">useIframe</span><span class="p">)</span> <span class="p">{</span>
                    <span class="kd">var</span> <span class="nx">pos</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getStyle</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="s2">&quot;position&quot;</span><span class="p">);</span>
                    
                    <span class="k">if</span> <span class="p">(</span><span class="nx">pos</span> <span class="o">==</span> <span class="s2">&quot;absolute&quot;</span> <span class="o">||</span> <span class="nx">pos</span> <span class="o">==</span> <span class="s2">&quot;relative&quot;</span><span class="p">)</span> <span class="p">{</span>
                        
                        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">inDocument</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">))</span> <span class="p">{</span>
                            <span class="k">this</span><span class="p">.</span><span class="nx">iframe</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;iframe&quot;</span><span class="p">);</span>
                            <span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="s2">&quot;javascript:false;&quot;</span><span class="p">;</span>
    
                            <span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">,</span> <span class="s2">&quot;opacity&quot;</span><span class="p">,</span> <span class="s2">&quot;0&quot;</span><span class="p">);</span>
    
                            <span class="k">if</span> <span class="p">(</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">ua</span><span class="p">.</span><span class="nx">ie</span> <span class="o">&amp;&amp;</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">ua</span><span class="p">.</span><span class="nx">ie</span> <span class="o">&lt;=</span> <span class="mi">6</span><span class="p">)</span> <span class="p">{</span>
                                <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_FIXED_SIZE</span><span class="p">);</span>
                            <span class="p">}</span>
    
                            <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">);</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                    <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">)</span> <span class="p">{</span>
                            <span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">);</span>
                        <span class="p">}</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">iframe</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Default handler for the &quot;title&quot; property</span>
<span class="cm">    * @method configTitle</span>
<span class="cm">    */</span>
    <span class="nx">configTitle</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">title</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>

        <span class="c1">// &quot;&quot; disables title bar</span>
        <span class="k">if</span> <span class="p">(</span><span class="nx">title</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">createTitleBar</span><span class="p">(</span><span class="nx">title</span><span class="p">);</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">close</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">CLOSE</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">close</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">removeTitleBar</span><span class="p">();</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">createTitleBar</span><span class="p">(</span><span class="s2">&quot;&amp;#160;&quot;</span><span class="p">);</span>
            <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Default handler for the &quot;close&quot; property</span>
<span class="cm">    * @method configClose</span>
<span class="cm">    */</span>
    <span class="nx">configClose</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">close</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
            <span class="nx">title</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TITLE</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
    
        <span class="k">if</span> <span class="p">(</span><span class="nx">close</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">title</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">createTitleBar</span><span class="p">(</span><span class="s2">&quot;&amp;#160;&quot;</span><span class="p">);</span>
            <span class="p">}</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">createCloseButton</span><span class="p">();</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">removeCloseButton</span><span class="p">();</span>
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">title</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">removeTitleBar</span><span class="p">();</span>
            <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Initializes Calendar&#39;s built-in CustomEvents</span>
<span class="cm">    * @method initEvents</span>
<span class="cm">    */</span>
    <span class="nx">initEvents</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>

        <span class="kd">var</span> <span class="nx">defEvents</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">_EVENT_TYPES</span><span class="p">,</span>
            <span class="nx">CE</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">CustomEvent</span><span class="p">,</span>
            <span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span> <span class="c1">// To help with minification</span>

        <span class="cm">/**</span>
<span class="cm">        * Fired before a date selection is made</span>
<span class="cm">        * @event beforeSelectEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">beforeSelectEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_SELECT</span><span class="p">);</span> 

        <span class="cm">/**</span>
<span class="cm">        * Fired when a date selection is made</span>
<span class="cm">        * @event selectEvent</span>
<span class="cm">        * @param {Array} Array of Date field arrays in the format [YYYY, MM, DD].</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">selectEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">SELECT</span><span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Fired before a date or set of dates is deselected</span>
<span class="cm">        * @event beforeDeselectEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">beforeDeselectEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_DESELECT</span><span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Fired when a date or set of dates is deselected</span>
<span class="cm">        * @event deselectEvent</span>
<span class="cm">        * @param {Array} Array of Date field arrays in the format [YYYY, MM, DD].</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">deselectEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">DESELECT</span><span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * Fired when the Calendar page is changed</span>
<span class="cm">        * @event changePageEvent</span>
<span class="cm">        * @param {Date} prevDate The date before the page was changed</span>
<span class="cm">        * @param {Date} newDate The date after the page was changed</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">changePageEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">CHANGE_PAGE</span><span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * Fired before the Calendar is rendered</span>
<span class="cm">        * @event beforeRenderEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">beforeRenderEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_RENDER</span><span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * Fired when the Calendar is rendered</span>
<span class="cm">        * @event renderEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">renderEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">RENDER</span><span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Fired just before the Calendar is to be destroyed</span>
<span class="cm">        * @event beforeDestroyEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">beforeDestroyEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_DESTROY</span><span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Fired after the Calendar is destroyed. This event should be used</span>
<span class="cm">        * for notification only. When this event is fired, important Calendar instance</span>
<span class="cm">        * properties, dom references and event listeners have already been </span>
<span class="cm">        * removed/dereferenced, and hence the Calendar instance is not in a usable </span>
<span class="cm">        * state.</span>
<span class="cm">        *</span>
<span class="cm">        * @event destroyEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">destroyEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">DESTROY</span><span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Fired when the Calendar is reset</span>
<span class="cm">        * @event resetEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">resetEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">RESET</span><span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Fired when the Calendar is cleared</span>
<span class="cm">        * @event clearEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">clearEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">CLEAR</span><span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Fired just before the Calendar is to be shown</span>
<span class="cm">        * @event beforeShowEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">beforeShowEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_SHOW</span><span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Fired after the Calendar is shown</span>
<span class="cm">        * @event showEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">showEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">SHOW</span><span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Fired just before the Calendar is to be hidden</span>
<span class="cm">        * @event beforeHideEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">beforeHideEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_HIDE</span><span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Fired after the Calendar is hidden</span>
<span class="cm">        * @event hideEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">hideEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">HIDE</span><span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Fired just before the CalendarNavigator is to be shown</span>
<span class="cm">        * @event beforeShowNavEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">beforeShowNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_SHOW_NAV</span><span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * Fired after the CalendarNavigator is shown</span>
<span class="cm">        * @event showNavEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">showNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">SHOW_NAV</span><span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * Fired just before the CalendarNavigator is to be hidden</span>
<span class="cm">        * @event beforeHideNavEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">beforeHideNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_HIDE_NAV</span><span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * Fired after the CalendarNavigator is hidden</span>
<span class="cm">        * @event hideNavEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">hideNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">HIDE_NAV</span><span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Fired just before the CalendarNavigator is to be rendered</span>
<span class="cm">        * @event beforeRenderNavEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">beforeRenderNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_RENDER_NAV</span><span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Fired after the CalendarNavigator is rendered</span>
<span class="cm">        * @event renderNavEvent</span>
<span class="cm">        */</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">renderNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">RENDER_NAV</span><span class="p">);</span>

        <span class="nx">cal</span><span class="p">.</span><span class="nx">beforeSelectEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">onBeforeSelect</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">selectEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">onSelect</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">beforeDeselectEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">onBeforeDeselect</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">deselectEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">onDeselect</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">changePageEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">onChangePage</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">renderEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">onRender</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">resetEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">onReset</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="nx">cal</span><span class="p">.</span><span class="nx">clearEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">onClear</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * The default event handler for clicks on the &quot;Previous Month&quot; navigation UI</span>
<span class="cm">    *</span>
<span class="cm">    * @method doPreviousMonthNav</span>
<span class="cm">    * @param {DOMEvent} e The DOM event</span>
<span class="cm">    * @param {Calendar} cal A reference to the calendar</span>
<span class="cm">    */</span>
    <span class="nx">doPreviousMonthNav</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">cal</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">Event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
        <span class="c1">// previousMonth invoked in a timeout, to allow</span>
        <span class="c1">// event to bubble up, with correct target. Calling</span>
        <span class="c1">// previousMonth, will call render which will remove </span>
        <span class="c1">// HTML which generated the event, resulting in an </span>
        <span class="c1">// invalid event target in certain browsers.</span>
        <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
            <span class="nx">cal</span><span class="p">.</span><span class="nx">previousMonth</span><span class="p">();</span>
            <span class="kd">var</span> <span class="nx">navs</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_NAV_LEFT</span><span class="p">,</span> <span class="s2">&quot;a&quot;</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">);</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">navs</span> <span class="o">&amp;&amp;</span> <span class="nx">navs</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="p">{</span>
                <span class="k">try</span> <span class="p">{</span>
                    <span class="nx">navs</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">focus</span><span class="p">();</span>
                <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">ex</span><span class="p">)</span> <span class="p">{</span>
                    <span class="c1">// ignore</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span> <span class="mi">0</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">     * The default event handler for clicks on the &quot;Next Month&quot; navigation UI</span>
<span class="cm">     *</span>
<span class="cm">     * @method doNextMonthNav</span>
<span class="cm">     * @param {DOMEvent} e The DOM event</span>
<span class="cm">     * @param {Calendar} cal A reference to the calendar</span>
<span class="cm">     */</span>
    <span class="nx">doNextMonthNav</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">cal</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">Event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
        <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
            <span class="nx">cal</span><span class="p">.</span><span class="nx">nextMonth</span><span class="p">();</span>
            <span class="kd">var</span> <span class="nx">navs</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_NAV_RIGHT</span><span class="p">,</span> <span class="s2">&quot;a&quot;</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">);</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">navs</span> <span class="o">&amp;&amp;</span> <span class="nx">navs</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="p">{</span>
                <span class="k">try</span> <span class="p">{</span>
                    <span class="nx">navs</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">focus</span><span class="p">();</span>
                <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">ex</span><span class="p">)</span> <span class="p">{</span>
                    <span class="c1">// ignore</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span> <span class="mi">0</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * The default event handler for date cell selection. Currently attached to </span>
<span class="cm">    * the Calendar&#39;s bounding box, referenced by it&#39;s &lt;a href=&quot;#property_oDomContainer&quot;&gt;oDomContainer&lt;/a&gt; property.</span>
<span class="cm">    *</span>
<span class="cm">    * @method doSelectCell</span>
<span class="cm">    * @param {DOMEvent} e The DOM event</span>
<span class="cm">    * @param {Calendar} cal A reference to the calendar</span>
<span class="cm">    */</span>
    <span class="nx">doSelectCell</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">cal</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">cell</span><span class="p">,</span> <span class="nx">d</span><span class="p">,</span> <span class="nx">date</span><span class="p">,</span> <span class="nx">index</span><span class="p">;</span>

        <span class="kd">var</span> <span class="nx">target</span> <span class="o">=</span> <span class="nx">Event</span><span class="p">.</span><span class="nx">getTarget</span><span class="p">(</span><span class="nx">e</span><span class="p">),</span>
            <span class="nx">tagName</span> <span class="o">=</span> <span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">(),</span>
            <span class="nx">defSelector</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>

        <span class="k">while</span> <span class="p">(</span><span class="nx">tagName</span> <span class="o">!=</span> <span class="s2">&quot;td&quot;</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="p">))</span> <span class="p">{</span>

            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">defSelector</span> <span class="o">&amp;&amp;</span> <span class="nx">tagName</span> <span class="o">==</span> <span class="s2">&quot;a&quot;</span> <span class="o">&amp;&amp;</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTOR</span><span class="p">))</span> <span class="p">{</span>
                <span class="nx">defSelector</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="nx">target</span> <span class="o">=</span> <span class="nx">target</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span>
            <span class="nx">tagName</span> <span class="o">=</span> <span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">();</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">target</span> <span class="o">==</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span> <span class="o">||</span> <span class="nx">tagName</span> <span class="o">==</span> <span class="s2">&quot;html&quot;</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">return</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">defSelector</span><span class="p">)</span> <span class="p">{</span>
            <span class="c1">// Stop link href navigation for default renderer</span>
            <span class="nx">Event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
        <span class="p">}</span>
    
        <span class="nx">cell</span> <span class="o">=</span> <span class="nx">target</span><span class="p">;</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="p">))</span> <span class="p">{</span>
            <span class="nx">index</span> <span class="o">=</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">getIndexFromId</span><span class="p">(</span><span class="nx">cell</span><span class="p">.</span><span class="nx">id</span><span class="p">);</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">index</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">d</span> <span class="o">=</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">[</span><span class="nx">index</span><span class="p">];</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">d</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">date</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">d</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="nx">d</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="nx">d</span><span class="p">[</span><span class="mi">2</span><span class="p">]);</span>
                
                    <span class="kd">var</span> <span class="nx">link</span><span class="p">;</span>

                    <span class="nx">cal</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Selecting cell &quot;</span> <span class="o">+</span> <span class="nx">index</span> <span class="o">+</span> <span class="s2">&quot; via click&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">Options</span><span class="p">.</span><span class="nx">MULTI_SELECT</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">link</span> <span class="o">=</span> <span class="nx">cell</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s2">&quot;a&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">];</span>
                        <span class="k">if</span> <span class="p">(</span><span class="nx">link</span><span class="p">)</span> <span class="p">{</span>
                            <span class="nx">link</span><span class="p">.</span><span class="nx">blur</span><span class="p">();</span>
                        <span class="p">}</span>

                        <span class="kd">var</span> <span class="nx">cellDate</span> <span class="o">=</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">[</span><span class="nx">index</span><span class="p">];</span>
                        <span class="kd">var</span> <span class="nx">cellDateIndex</span> <span class="o">=</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="p">(</span><span class="nx">cellDate</span><span class="p">);</span>

                        <span class="k">if</span> <span class="p">(</span><span class="nx">cellDateIndex</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> 
                            <span class="nx">cal</span><span class="p">.</span><span class="nx">deselectCell</span><span class="p">(</span><span class="nx">index</span><span class="p">);</span>
                        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                            <span class="nx">cal</span><span class="p">.</span><span class="nx">selectCell</span><span class="p">(</span><span class="nx">index</span><span class="p">);</span>
                        <span class="p">}</span> 

                    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                        <span class="nx">link</span> <span class="o">=</span> <span class="nx">cell</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s2">&quot;a&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">];</span>
                        <span class="k">if</span> <span class="p">(</span><span class="nx">link</span><span class="p">)</span> <span class="p">{</span>
                            <span class="nx">link</span><span class="p">.</span><span class="nx">blur</span><span class="p">();</span>
                        <span class="p">}</span>
                        <span class="nx">cal</span><span class="p">.</span><span class="nx">selectCell</span><span class="p">(</span><span class="nx">index</span><span class="p">);</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * The event that is executed when the user hovers over a cell</span>
<span class="cm">    * @method doCellMouseOver</span>
<span class="cm">    * @param {DOMEvent} e The event</span>
<span class="cm">    * @param {Calendar} cal A reference to the calendar passed by the Event utility</span>
<span class="cm">    */</span>
    <span class="nx">doCellMouseOver</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">cal</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">target</span><span class="p">;</span>
        <span class="k">if</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">target</span> <span class="o">=</span> <span class="nx">Event</span><span class="p">.</span><span class="nx">getTarget</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="nx">target</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
        <span class="p">}</span>

        <span class="k">while</span> <span class="p">(</span><span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span> <span class="o">&amp;&amp;</span> <span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">()</span> <span class="o">!=</span> <span class="s2">&quot;td&quot;</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">target</span> <span class="o">=</span> <span class="nx">target</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span>
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span> <span class="o">||</span> <span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">()</span> <span class="o">==</span> <span class="s2">&quot;html&quot;</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">return</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="p">))</span> <span class="p">{</span>
            <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_HOVER</span><span class="p">);</span>
        <span class="p">}</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * The event that is executed when the user moves the mouse out of a cell</span>
<span class="cm">    * @method doCellMouseOut</span>
<span class="cm">    * @param {DOMEvent} e The event</span>
<span class="cm">    * @param {Calendar} cal A reference to the calendar passed by the Event utility</span>
<span class="cm">    */</span>
    <span class="nx">doCellMouseOut</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">cal</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">target</span><span class="p">;</span>
        <span class="k">if</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">target</span> <span class="o">=</span> <span class="nx">Event</span><span class="p">.</span><span class="nx">getTarget</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="nx">target</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
        <span class="p">}</span>

        <span class="k">while</span> <span class="p">(</span><span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span> <span class="o">&amp;&amp;</span> <span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">()</span> <span class="o">!=</span> <span class="s2">&quot;td&quot;</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">target</span> <span class="o">=</span> <span class="nx">target</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span>
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span> <span class="o">||</span> <span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">()</span> <span class="o">==</span> <span class="s2">&quot;html&quot;</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">return</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="p">))</span> <span class="p">{</span>
            <span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_HOVER</span><span class="p">);</span>
        <span class="p">}</span>
    <span class="p">},</span>

    <span class="nx">setupConfig</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>

        <span class="kd">var</span> <span class="nx">cfg</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">;</span>

        <span class="cm">/**</span>
<span class="cm">        * The date to use to represent &quot;Today&quot;.</span>
<span class="cm">        *</span>
<span class="cm">        * @config today</span>
<span class="cm">        * @type Date</span>
<span class="cm">        * @default The client side date (new Date()) when the Calendar is instantiated.</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TODAY</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span> <span class="k">new</span> <span class="nb">Date</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TODAY</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()),</span> <span class="nx">supercedes</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TODAY</span><span class="p">.</span><span class="nx">supercedes</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configToday</span><span class="p">,</span> <span class="nx">suppressEvent</span><span class="o">:</span><span class="kc">true</span> <span class="p">}</span> <span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * The month/year representing the current visible Calendar date (mm/yyyy)</span>
<span class="cm">        * @config pagedate</span>
<span class="cm">        * @type String | Date</span>
<span class="cm">        * @default Today&#39;s date</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">value</span> <span class="o">||</span> <span class="k">new</span> <span class="nb">Date</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TODAY</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()),</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configPageDate</span> <span class="p">}</span> <span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * The date or range of dates representing the current Calendar selection</span>
<span class="cm">        * @config selected</span>
<span class="cm">        * @type String</span>
<span class="cm">        * @default []</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">concat</span><span class="p">(),</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configSelected</span> <span class="p">}</span> <span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * The title to display above the Calendar&#39;s month header</span>
<span class="cm">        * @config title</span>
<span class="cm">        * @type String</span>
<span class="cm">        * @default &quot;&quot;</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TITLE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TITLE</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configTitle</span> <span class="p">}</span> <span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Whether or not a close button should be displayed for this Calendar</span>
<span class="cm">        * @config close</span>
<span class="cm">        * @type Boolean</span>
<span class="cm">        * @default false</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">CLOSE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">CLOSE</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configClose</span> <span class="p">}</span> <span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Whether or not an iframe shim should be placed under the Calendar to prevent select boxes from bleeding through in Internet Explorer 6 and below.</span>
<span class="cm">        * This property is enabled by default for IE6 and below. It is disabled by default for other browsers for performance reasons, but can be </span>
<span class="cm">        * enabled if required.</span>
<span class="cm">        * </span>
<span class="cm">        * @config iframe</span>
<span class="cm">        * @type Boolean</span>
<span class="cm">        * @default true for IE6 and below, false for all other browsers</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">IFRAME</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">IFRAME</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configIframe</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkBoolean</span> <span class="p">}</span> <span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * The minimum selectable date in the current Calendar (mm/dd/yyyy)</span>
<span class="cm">        * @config mindate</span>
<span class="cm">        * @type String | Date</span>
<span class="cm">        * @default null</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MINDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MINDATE</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configMinDate</span> <span class="p">}</span> <span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * The maximum selectable date in the current Calendar (mm/dd/yyyy)</span>
<span class="cm">        * @config maxdate</span>
<span class="cm">        * @type String | Date</span>
<span class="cm">        * @default null</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MAXDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MAXDATE</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configMaxDate</span> <span class="p">}</span> <span class="p">);</span>

        <span class="c1">// Options properties</span>
    
        <span class="cm">/**</span>
<span class="cm">        * True if the Calendar should allow multiple selections. False by default.</span>
<span class="cm">        * @config MULTI_SELECT</span>
<span class="cm">        * @type Boolean</span>
<span class="cm">        * @default false</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MULTI_SELECT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MULTI_SELECT</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkBoolean</span> <span class="p">}</span> <span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * The weekday the week begins on. Default is 0 (Sunday = 0, Monday = 1 ... Saturday = 6).</span>
<span class="cm">        * @config START_WEEKDAY</span>
<span class="cm">        * @type number</span>
<span class="cm">        * @default 0</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">START_WEEKDAY</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">START_WEEKDAY</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span>  <span class="p">}</span> <span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * True if the Calendar should show weekday labels. True by default.</span>
<span class="cm">        * @config SHOW_WEEKDAYS</span>
<span class="cm">        * @type Boolean</span>
<span class="cm">        * @default true</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEKDAYS</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEKDAYS</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkBoolean</span>  <span class="p">}</span> <span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * True if the Calendar should show week row headers. False by default.</span>
<span class="cm">        * @config SHOW_WEEK_HEADER</span>
<span class="cm">        * @type Boolean</span>
<span class="cm">        * @default false</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_HEADER</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_HEADER</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkBoolean</span> <span class="p">}</span> <span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * True if the Calendar should show week row footers. False by default.</span>
<span class="cm">        * @config SHOW_WEEK_FOOTER</span>
<span class="cm">        * @type Boolean</span>
<span class="cm">        * @default false</span>
<span class="cm">        */</span> 
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_FOOTER</span><span class="p">.</span><span class="nx">key</span><span class="p">,{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_FOOTER</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkBoolean</span> <span class="p">}</span> <span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * True if the Calendar should suppress weeks that are not a part of the current month. False by default.</span>
<span class="cm">        * @config HIDE_BLANK_WEEKS</span>
<span class="cm">        * @type Boolean</span>
<span class="cm">        * @default false</span>
<span class="cm">        */</span> 
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">HIDE_BLANK_WEEKS</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">HIDE_BLANK_WEEKS</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkBoolean</span> <span class="p">}</span> <span class="p">);</span>
        
        <span class="cm">/**</span>
<span class="cm">        * The image that should be used for the left navigation arrow.</span>
<span class="cm">        * @config NAV_ARROW_LEFT</span>
<span class="cm">        * @type String</span>
<span class="cm">        * @deprecated You can customize the image by overriding the default CSS class for the left arrow - &quot;calnavleft&quot;  </span>
<span class="cm">        * @default null</span>
<span class="cm">        */</span> 
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">NAV_ARROW_LEFT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">NAV_ARROW_LEFT</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span> <span class="p">}</span> <span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * The image that should be used for the right navigation arrow.</span>
<span class="cm">        * @config NAV_ARROW_RIGHT</span>
<span class="cm">        * @type String</span>
<span class="cm">        * @deprecated You can customize the image by overriding the default CSS class for the right arrow - &quot;calnavright&quot;</span>
<span class="cm">        * @default null</span>
<span class="cm">        */</span> 
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">NAV_ARROW_RIGHT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">NAV_ARROW_RIGHT</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span> <span class="p">}</span> <span class="p">);</span>
    
        <span class="c1">// Locale properties</span>
    
        <span class="cm">/**</span>
<span class="cm">        * The short month labels for the current locale.</span>
<span class="cm">        * @config MONTHS_SHORT</span>
<span class="cm">        * @type String[]</span>
<span class="cm">        * @default [&quot;Jan&quot;, &quot;Feb&quot;, &quot;Mar&quot;, &quot;Apr&quot;, &quot;May&quot;, &quot;Jun&quot;, &quot;Jul&quot;, &quot;Aug&quot;, &quot;Sep&quot;, &quot;Oct&quot;, &quot;Nov&quot;, &quot;Dec&quot;]</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MONTHS_SHORT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MONTHS_SHORT</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
        
        <span class="cm">/**</span>
<span class="cm">        * The long month labels for the current locale.</span>
<span class="cm">        * @config MONTHS_LONG</span>
<span class="cm">        * @type String[]</span>
<span class="cm">        * @default [&quot;January&quot;, &quot;February&quot;, &quot;March&quot;, &quot;April&quot;, &quot;May&quot;, &quot;June&quot;, &quot;July&quot;, &quot;August&quot;, &quot;September&quot;, &quot;October&quot;, &quot;November&quot;, &quot;December&quot;</span>
<span class="cm">        */</span> 
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MONTHS_LONG</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span>  <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MONTHS_LONG</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * The 1-character weekday labels for the current locale.</span>
<span class="cm">        * @config WEEKDAYS_1CHAR</span>
<span class="cm">        * @type String[]</span>
<span class="cm">        * @default [&quot;S&quot;, &quot;M&quot;, &quot;T&quot;, &quot;W&quot;, &quot;T&quot;, &quot;F&quot;, &quot;S&quot;]</span>
<span class="cm">        */</span> 
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_1CHAR</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_1CHAR</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
        
        <span class="cm">/**</span>
<span class="cm">        * The short weekday labels for the current locale.</span>
<span class="cm">        * @config WEEKDAYS_SHORT</span>
<span class="cm">        * @type String[]</span>
<span class="cm">        * @default [&quot;Su&quot;, &quot;Mo&quot;, &quot;Tu&quot;, &quot;We&quot;, &quot;Th&quot;, &quot;Fr&quot;, &quot;Sa&quot;]</span>
<span class="cm">        */</span> 
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_SHORT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_SHORT</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
        
        <span class="cm">/**</span>
<span class="cm">        * The medium weekday labels for the current locale.</span>
<span class="cm">        * @config WEEKDAYS_MEDIUM</span>
<span class="cm">        * @type String[]</span>
<span class="cm">        * @default [&quot;Sun&quot;, &quot;Mon&quot;, &quot;Tue&quot;, &quot;Wed&quot;, &quot;Thu&quot;, &quot;Fri&quot;, &quot;Sat&quot;]</span>
<span class="cm">        */</span> 
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_MEDIUM</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_MEDIUM</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
        
        <span class="cm">/**</span>
<span class="cm">        * The long weekday labels for the current locale.</span>
<span class="cm">        * @config WEEKDAYS_LONG</span>
<span class="cm">        * @type String[]</span>
<span class="cm">        * @default [&quot;Sunday&quot;, &quot;Monday&quot;, &quot;Tuesday&quot;, &quot;Wednesday&quot;, &quot;Thursday&quot;, &quot;Friday&quot;, &quot;Saturday&quot;]</span>
<span class="cm">        */</span> 
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_LONG</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_LONG</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Refreshes the locale values used to build the Calendar.</span>
<span class="cm">        * @method refreshLocale</span>
<span class="cm">        * @private</span>
<span class="cm">        */</span>
        <span class="kd">var</span> <span class="nx">refreshLocale</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
            <span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_MONTHS</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
            <span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
        <span class="p">};</span>
    
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">subscribeToConfigEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">START_WEEKDAY</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">refreshLocale</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">subscribeToConfigEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MONTHS_SHORT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">refreshLocale</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">subscribeToConfigEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MONTHS_LONG</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">refreshLocale</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">subscribeToConfigEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_1CHAR</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">refreshLocale</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">subscribeToConfigEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_SHORT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">refreshLocale</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">subscribeToConfigEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_MEDIUM</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">refreshLocale</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">subscribeToConfigEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_LONG</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">refreshLocale</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
       
        <span class="cm">/**</span>
<span class="cm">        * The setting that determines which length of month labels should be used. Possible values are &quot;short&quot; and &quot;long&quot;.</span>
<span class="cm">        * @config LOCALE_MONTHS</span>
<span class="cm">        * @type String</span>
<span class="cm">        * @default &quot;long&quot;</span>
<span class="cm">        */</span> 
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_MONTHS</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_MONTHS</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocaleValues</span> <span class="p">}</span> <span class="p">);</span>
        
        <span class="cm">/**</span>
<span class="cm">        * The setting that determines which length of weekday labels should be used. Possible values are &quot;1char&quot;, &quot;short&quot;, &quot;medium&quot;, and &quot;long&quot;.</span>
<span class="cm">        * @config LOCALE_WEEKDAYS</span>
<span class="cm">        * @type String</span>
<span class="cm">        * @default &quot;short&quot;</span>
<span class="cm">        */</span> 
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocaleValues</span> <span class="p">}</span> <span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * The positive or negative year offset from the Gregorian calendar year (assuming a January 1st rollover) to </span>
<span class="cm">        * be used when displaying and parsing dates. NOTE: All JS Date objects returned by methods, or expected as input by</span>
<span class="cm">        * methods will always represent the Gregorian year, in order to maintain date/month/week values. </span>
<span class="cm">        *</span>
<span class="cm">        * @config YEAR_OFFSET</span>
<span class="cm">        * @type Number</span>
<span class="cm">        * @default 0</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">supercedes</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">.</span><span class="nx">supercedes</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span>  <span class="p">}</span> <span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * The value used to delimit individual dates in a date string passed to various Calendar functions.</span>
<span class="cm">        * @config DATE_DELIMITER</span>
<span class="cm">        * @type String</span>
<span class="cm">        * @default &quot;,&quot;</span>
<span class="cm">        */</span> 
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">DATE_DELIMITER</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span>  <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">DATE_DELIMITER</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * The value used to delimit date fields in a date string passed to various Calendar functions.</span>
<span class="cm">        * @config DATE_FIELD_DELIMITER</span>
<span class="cm">        * @type String</span>
<span class="cm">        * @default &quot;/&quot;</span>
<span class="cm">        */</span> 
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">DATE_FIELD_DELIMITER</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">DATE_FIELD_DELIMITER</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * The value used to delimit date ranges in a date string passed to various Calendar functions.</span>
<span class="cm">        * @config DATE_RANGE_DELIMITER</span>
<span class="cm">        * @type String</span>
<span class="cm">        * @default &quot;-&quot;</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">DATE_RANGE_DELIMITER</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">DATE_RANGE_DELIMITER</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * The position of the month in a month/year date string</span>
<span class="cm">        * @config MY_MONTH_POSITION</span>
<span class="cm">        * @type Number</span>
<span class="cm">        * @default 1</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_MONTH_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_MONTH_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * The position of the year in a month/year date string</span>
<span class="cm">        * @config MY_YEAR_POSITION</span>
<span class="cm">        * @type Number</span>
<span class="cm">        * @default 2</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_YEAR_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_YEAR_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * The position of the month in a month/day date string</span>
<span class="cm">        * @config MD_MONTH_POSITION</span>
<span class="cm">        * @type Number</span>
<span class="cm">        * @default 1</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MD_MONTH_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MD_MONTH_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * The position of the day in a month/year date string</span>
<span class="cm">        * @config MD_DAY_POSITION</span>
<span class="cm">        * @type Number</span>
<span class="cm">        * @default 2</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MD_DAY_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span>  <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MD_DAY_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * The position of the month in a month/day/year date string</span>
<span class="cm">        * @config MDY_MONTH_POSITION</span>
<span class="cm">        * @type Number</span>
<span class="cm">        * @default 1</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MDY_MONTH_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MDY_MONTH_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * The position of the day in a month/day/year date string</span>
<span class="cm">        * @config MDY_DAY_POSITION</span>
<span class="cm">        * @type Number</span>
<span class="cm">        * @default 2</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MDY_DAY_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MDY_DAY_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * The position of the year in a month/day/year date string</span>
<span class="cm">        * @config MDY_YEAR_POSITION</span>
<span class="cm">        * @type Number</span>
<span class="cm">        * @default 3</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MDY_YEAR_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MDY_YEAR_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
        
        <span class="cm">/**</span>
<span class="cm">        * The position of the month in the month year label string used as the Calendar header</span>
<span class="cm">        * @config MY_LABEL_MONTH_POSITION</span>
<span class="cm">        * @type Number</span>
<span class="cm">        * @default 1</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_LABEL_MONTH_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_LABEL_MONTH_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
    
        <span class="cm">/**</span>
<span class="cm">        * The position of the year in the month year label string used as the Calendar header</span>
<span class="cm">        * @config MY_LABEL_YEAR_POSITION</span>
<span class="cm">        * @type Number</span>
<span class="cm">        * @default 2</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_LABEL_YEAR_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_LABEL_YEAR_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
        
        <span class="cm">/**</span>
<span class="cm">        * The suffix used after the month when rendering the Calendar header</span>
<span class="cm">        * @config MY_LABEL_MONTH_SUFFIX</span>
<span class="cm">        * @type String</span>
<span class="cm">        * @default &quot; &quot;</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_LABEL_MONTH_SUFFIX</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_LABEL_MONTH_SUFFIX</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
        
        <span class="cm">/**</span>
<span class="cm">        * The suffix used after the year when rendering the Calendar header</span>
<span class="cm">        * @config MY_LABEL_YEAR_SUFFIX</span>
<span class="cm">        * @type String</span>
<span class="cm">        * @default &quot;&quot;</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_LABEL_YEAR_SUFFIX</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_LABEL_YEAR_SUFFIX</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">        * Configuration for the Month/Year CalendarNavigator UI which allows the user to jump directly to a </span>
<span class="cm">        * specific Month/Year without having to scroll sequentially through months.</span>
<span class="cm">        * &lt;p&gt;</span>
<span class="cm">        * Setting this property to null (default value) or false, will disable the CalendarNavigator UI.</span>
<span class="cm">        * &lt;/p&gt;</span>
<span class="cm">        * &lt;p&gt;</span>
<span class="cm">        * Setting this property to true will enable the CalendarNavigatior UI with the default CalendarNavigator configuration values.</span>
<span class="cm">        * &lt;/p&gt;</span>
<span class="cm">        * &lt;p&gt;</span>
<span class="cm">        * This property can also be set to an object literal containing configuration properties for the CalendarNavigator UI.</span>
<span class="cm">        * The configuration object expects the the following case-sensitive properties, with the &quot;strings&quot; property being a nested object.</span>
<span class="cm">        * Any properties which are not provided will use the default values (defined in the CalendarNavigator class).</span>
<span class="cm">        * &lt;/p&gt;</span>
<span class="cm">        * &lt;dl&gt;</span>
<span class="cm">        * &lt;dt&gt;strings&lt;/dt&gt;</span>
<span class="cm">        * &lt;dd&gt;&lt;em&gt;Object&lt;/em&gt; :  An object with the properties shown below, defining the string labels to use in the Navigator&#39;s UI</span>
<span class="cm">        *     &lt;dl&gt;</span>
<span class="cm">        *         &lt;dt&gt;month&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : The string to use for the month label. Defaults to &quot;Month&quot;.&lt;/dd&gt;</span>
<span class="cm">        *         &lt;dt&gt;year&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : The string to use for the year label. Defaults to &quot;Year&quot;.&lt;/dd&gt;</span>
<span class="cm">        *         &lt;dt&gt;submit&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : The string to use for the submit button label. Defaults to &quot;Okay&quot;.&lt;/dd&gt;</span>
<span class="cm">        *         &lt;dt&gt;cancel&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : The string to use for the cancel button label. Defaults to &quot;Cancel&quot;.&lt;/dd&gt;</span>
<span class="cm">        *         &lt;dt&gt;invalidYear&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : The string to use for invalid year values. Defaults to &quot;Year needs to be a number&quot;.&lt;/dd&gt;</span>
<span class="cm">        *     &lt;/dl&gt;</span>
<span class="cm">        * &lt;/dd&gt;</span>
<span class="cm">        * &lt;dt&gt;monthFormat&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : The month format to use. Either YAHOO.widget.Calendar.LONG, or YAHOO.widget.Calendar.SHORT. Defaults to YAHOO.widget.Calendar.LONG&lt;/dd&gt;</span>
<span class="cm">        * &lt;dt&gt;initialFocus&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : Either &quot;year&quot; or &quot;month&quot; specifying which input control should get initial focus. Defaults to &quot;year&quot;&lt;/dd&gt;</span>
<span class="cm">        * &lt;/dl&gt;</span>
<span class="cm">        * &lt;p&gt;E.g.&lt;/p&gt;</span>
<span class="cm">        * &lt;pre&gt;</span>
<span class="cm">        * var navConfig = {</span>
<span class="cm">        *   strings: {</span>
<span class="cm">        *    month:&quot;Calendar Month&quot;,</span>
<span class="cm">        *    year:&quot;Calendar Year&quot;,</span>
<span class="cm">        *    submit: &quot;Submit&quot;,</span>
<span class="cm">        *    cancel: &quot;Cancel&quot;,</span>
<span class="cm">        *    invalidYear: &quot;Please enter a valid year&quot;</span>
<span class="cm">        *   },</span>
<span class="cm">        *   monthFormat: YAHOO.widget.Calendar.SHORT,</span>
<span class="cm">        *   initialFocus: &quot;month&quot;</span>
<span class="cm">        * }</span>
<span class="cm">        * &lt;/pre&gt;</span>
<span class="cm">        * @config navigator</span>
<span class="cm">        * @type {Object|Boolean}</span>
<span class="cm">        * @default null</span>
<span class="cm">        */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">NAV</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">NAV</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configNavigator</span> <span class="p">}</span> <span class="p">);</span>

        <span class="cm">/**</span>
<span class="cm">         * The map of UI strings which the Calendar UI uses.</span>
<span class="cm">         *</span>
<span class="cm">         * @config strings</span>
<span class="cm">         * @type {Object}</span>
<span class="cm">         * @default An object with the properties shown below:</span>
<span class="cm">         *     &lt;dl&gt;</span>
<span class="cm">         *         &lt;dt&gt;previousMonth&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : The string to use for the &quot;Previous Month&quot; navigation UI. Defaults to &quot;Previous Month&quot;.&lt;/dd&gt;</span>
<span class="cm">         *         &lt;dt&gt;nextMonth&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : The string to use for the &quot;Next Month&quot; navigation UI. Defaults to &quot;Next Month&quot;.&lt;/dd&gt;</span>
<span class="cm">         *         &lt;dt&gt;close&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : The string to use for the close button label. Defaults to &quot;Close&quot;.&lt;/dd&gt;</span>
<span class="cm">         *     &lt;/dl&gt;</span>
<span class="cm">         */</span>
        <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">STRINGS</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> 
            <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">STRINGS</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span>
            <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configStrings</span><span class="p">,</span>
            <span class="nx">validator</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">val</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">return</span> <span class="nx">Lang</span><span class="p">.</span><span class="nx">isObject</span><span class="p">(</span><span class="nx">val</span><span class="p">);</span>
            <span class="p">},</span>
            <span class="nx">supercedes</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">STRINGS</span><span class="p">.</span><span class="nx">supercedes</span>
        <span class="p">});</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * The default handler for the &quot;strings&quot; property</span>
<span class="cm">    * @method configStrings</span>
<span class="cm">    */</span>
    <span class="nx">configStrings</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">Lang</span><span class="p">.</span><span class="nx">merge</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">STRINGS</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">STRINGS</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">val</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * The default handler for the &quot;pagedate&quot; property</span>
<span class="cm">    * @method configPageDate</span>
<span class="cm">    */</span>
    <span class="nx">configPageDate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parsePageDate</span><span class="p">(</span><span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span> <span class="kc">true</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * The default handler for the &quot;mindate&quot; property</span>
<span class="cm">    * @method configMinDate</span>
<span class="cm">    */</span>
    <span class="nx">configMinDate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
        <span class="k">if</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isString</span><span class="p">(</span><span class="nx">val</span><span class="p">))</span> <span class="p">{</span>
            <span class="nx">val</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDate</span><span class="p">(</span><span class="nx">val</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MINDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">val</span><span class="p">[</span><span class="mi">0</span><span class="p">],(</span><span class="nx">val</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span><span class="nx">val</span><span class="p">[</span><span class="mi">2</span><span class="p">]));</span>
        <span class="p">}</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * The default handler for the &quot;maxdate&quot; property</span>
<span class="cm">    * @method configMaxDate</span>
<span class="cm">    */</span>
    <span class="nx">configMaxDate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
        <span class="k">if</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isString</span><span class="p">(</span><span class="nx">val</span><span class="p">))</span> <span class="p">{</span>
            <span class="nx">val</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDate</span><span class="p">(</span><span class="nx">val</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MAXDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">val</span><span class="p">[</span><span class="mi">0</span><span class="p">],(</span><span class="nx">val</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span><span class="nx">val</span><span class="p">[</span><span class="mi">2</span><span class="p">]));</span>
        <span class="p">}</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * The default handler for the &quot;today&quot; property</span>
<span class="cm">    * @method configToday</span>
<span class="cm">    */</span>
    <span class="nx">configToday</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
        <span class="c1">// Only do this for initial set. Changing the today property after the initial</span>
        <span class="c1">// set, doesn&#39;t affect pagedate</span>
        <span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
        <span class="k">if</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isString</span><span class="p">(</span><span class="nx">val</span><span class="p">))</span> <span class="p">{</span>
            <span class="nx">val</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDate</span><span class="p">(</span><span class="nx">val</span><span class="p">);</span>
        <span class="p">}</span>
        <span class="kd">var</span> <span class="nx">today</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">clearTime</span><span class="p">(</span><span class="nx">val</span><span class="p">);</span>
        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">initialConfig</span><span class="p">[</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">])</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">today</span><span class="p">);</span>
        <span class="p">}</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">today</span> <span class="o">=</span> <span class="nx">today</span><span class="p">;</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TODAY</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">today</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * The default handler for the &quot;selected&quot; property</span>
<span class="cm">    * @method configSelected</span>
<span class="cm">    */</span>
    <span class="nx">configSelected</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
            <span class="nx">cfgSelected</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">;</span>
        
        <span class="k">if</span> <span class="p">(</span><span class="nx">selected</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isString</span><span class="p">(</span><span class="nx">selected</span><span class="p">))</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDates</span><span class="p">(</span><span class="nx">selected</span><span class="p">),</span> <span class="kc">true</span><span class="p">);</span>
            <span class="p">}</span> 
        <span class="p">}</span>
        <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="k">this</span><span class="p">.</span><span class="nx">_selectedDates</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">_selectedDates</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">);</span>
        <span class="p">}</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * The default handler for all configuration options properties</span>
<span class="cm">    * @method configOptions</span>
<span class="cm">    */</span>
    <span class="nx">configOptions</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">Options</span><span class="p">[</span><span class="nx">type</span><span class="p">.</span><span class="nx">toUpperCase</span><span class="p">()]</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * The default handler for all configuration locale properties</span>
<span class="cm">    * @method configLocale</span>
<span class="cm">    */</span>
    <span class="nx">configLocale</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">[</span><span class="nx">type</span><span class="p">.</span><span class="nx">toUpperCase</span><span class="p">()]</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_MONTHS</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * The default handler for all configuration locale field length properties</span>
<span class="cm">    * @method configLocaleValues</span>
<span class="cm">    */</span>
    <span class="nx">configLocaleValues</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>

        <span class="nx">type</span> <span class="o">=</span> <span class="nx">type</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">();</span>

        <span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
            <span class="nx">cfg</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">,</span>
            <span class="nx">Locale</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">;</span>

        <span class="k">switch</span> <span class="p">(</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">case</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_MONTHS</span><span class="p">.</span><span class="nx">key</span><span class="o">:</span>
                <span class="k">switch</span> <span class="p">(</span><span class="nx">val</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">SHORT</span><span class="o">:</span>
                        <span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_MONTHS</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MONTHS_SHORT</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">concat</span><span class="p">();</span>
                        <span class="k">break</span><span class="p">;</span>
                    <span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">LONG</span><span class="o">:</span>
                        <span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_MONTHS</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MONTHS_LONG</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">concat</span><span class="p">();</span>
                        <span class="k">break</span><span class="p">;</span>
                <span class="p">}</span>
                <span class="k">break</span><span class="p">;</span>
            <span class="k">case</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">.</span><span class="nx">key</span><span class="o">:</span>
                <span class="k">switch</span> <span class="p">(</span><span class="nx">val</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">ONE_CHAR</span><span class="o">:</span>
                        <span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_1CHAR</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">concat</span><span class="p">();</span>
                        <span class="k">break</span><span class="p">;</span>
                    <span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">SHORT</span><span class="o">:</span>
                        <span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_SHORT</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">concat</span><span class="p">();</span>
                        <span class="k">break</span><span class="p">;</span>
                    <span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">MEDIUM</span><span class="o">:</span>
                        <span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_MEDIUM</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">concat</span><span class="p">();</span>
                        <span class="k">break</span><span class="p">;</span>
                    <span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">LONG</span><span class="o">:</span>
                        <span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_LONG</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">concat</span><span class="p">();</span>
                        <span class="k">break</span><span class="p">;</span>
                <span class="p">}</span>
                
                <span class="kd">var</span> <span class="nx">START_WEEKDAY</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">START_WEEKDAY</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
    
                <span class="k">if</span> <span class="p">(</span><span class="nx">START_WEEKDAY</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">w</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="nx">w</span> <span class="o">&lt;</span> <span class="nx">START_WEEKDAY</span><span class="p">;</span> <span class="o">++</span><span class="nx">w</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">.</span><span class="nx">shift</span><span class="p">());</span>
                    <span class="p">}</span>
                <span class="p">}</span>
                <span class="k">break</span><span class="p">;</span>
        <span class="p">}</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">     * The default handler for the &quot;navigator&quot; property</span>
<span class="cm">     * @method configNavigator</span>
<span class="cm">     */</span>
    <span class="nx">configNavigator</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
        <span class="k">if</span> <span class="p">(</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">CalendarNavigator</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nx">val</span> <span class="o">===</span> <span class="kc">true</span> <span class="o">||</span> <span class="nx">Lang</span><span class="p">.</span><span class="nx">isObject</span><span class="p">(</span><span class="nx">val</span><span class="p">)))</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">oNavigator</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">oNavigator</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">CalendarNavigator</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
                <span class="c1">// Cleanup DOM Refs/Events before innerHTML is removed.</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">beforeRenderEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
                    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">pages</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">oNavigator</span><span class="p">.</span><span class="nx">erase</span><span class="p">();</span>
                    <span class="p">}</span>
                <span class="p">},</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
            <span class="p">}</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oNavigator</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">oNavigator</span><span class="p">.</span><span class="nx">destroy</span><span class="p">();</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">oNavigator</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Defines the style constants for the Calendar</span>
<span class="cm">    * @method initStyles</span>
<span class="cm">    */</span>
    <span class="nx">initStyles</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>

        <span class="kd">var</span> <span class="nx">defStyle</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">STYLES</span><span class="p">;</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">Style</span> <span class="o">=</span> <span class="p">{</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_ROW_HEADER</span>
<span class="cm">            */</span>
            <span class="nx">CSS_ROW_HEADER</span><span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_ROW_HEADER</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_ROW_FOOTER</span>
<span class="cm">            */</span>
            <span class="nx">CSS_ROW_FOOTER</span><span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_ROW_FOOTER</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL_SELECTOR</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL_SELECTOR</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTOR</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL_SELECTED</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL_SELECTED</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTED</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL_SELECTABLE</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL_SELECTABLE</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL_RESTRICTED</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL_RESTRICTED</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_RESTRICTED</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL_TODAY</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL_TODAY</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_TODAY</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL_OOM</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL_OOM</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_OOM</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL_OOB</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL_OOB</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_OOB</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_HEADER</span>
<span class="cm">            */</span>
            <span class="nx">CSS_HEADER</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_HEADER</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_HEADER_TEXT</span>
<span class="cm">            */</span>
            <span class="nx">CSS_HEADER_TEXT</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_HEADER_TEXT</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_BODY</span>
<span class="cm">            */</span>
            <span class="nx">CSS_BODY</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_BODY</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_WEEKDAY_CELL</span>
<span class="cm">            */</span>
            <span class="nx">CSS_WEEKDAY_CELL</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_WEEKDAY_CELL</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_WEEKDAY_ROW</span>
<span class="cm">            */</span>
            <span class="nx">CSS_WEEKDAY_ROW</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_WEEKDAY_ROW</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_FOOTER</span>
<span class="cm">            */</span>
            <span class="nx">CSS_FOOTER</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_FOOTER</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CALENDAR</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CALENDAR</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CALENDAR</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_SINGLE</span>
<span class="cm">            */</span>
            <span class="nx">CSS_SINGLE</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_SINGLE</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CONTAINER</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CONTAINER</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CONTAINER</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_NAV_LEFT</span>
<span class="cm">            */</span>
            <span class="nx">CSS_NAV_LEFT</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_NAV_LEFT</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_NAV_RIGHT</span>
<span class="cm">            */</span>
            <span class="nx">CSS_NAV_RIGHT</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_NAV_RIGHT</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_NAV</span>
<span class="cm">            */</span>
            <span class="nx">CSS_NAV</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_NAV</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CLOSE</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CLOSE</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CLOSE</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL_TOP</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL_TOP</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_TOP</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL_LEFT</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL_LEFT</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_LEFT</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL_RIGHT</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL_RIGHT</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_RIGHT</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL_BOTTOM</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL_BOTTOM</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_BOTTOM</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL_HOVER</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL_HOVER</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_HOVER</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL_HIGHLIGHT1</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL_HIGHLIGHT1</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_HIGHLIGHT1</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL_HIGHLIGHT2</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL_HIGHLIGHT2</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_HIGHLIGHT2</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL_HIGHLIGHT3</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL_HIGHLIGHT3</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_HIGHLIGHT3</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">            * @property Style.CSS_CELL_HIGHLIGHT4</span>
<span class="cm">            */</span>
            <span class="nx">CSS_CELL_HIGHLIGHT4</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_HIGHLIGHT4</span><span class="p">,</span>
            <span class="cm">/**</span>
<span class="cm">             * @property Style.CSS_WITH_TITLE</span>
<span class="cm">             */</span>
            <span class="nx">CSS_WITH_TITLE</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_WITH_TITLE</span><span class="p">,</span>
             <span class="cm">/**</span>
<span class="cm">             * @property Style.CSS_FIXED_SIZE</span>
<span class="cm">             */</span>
            <span class="nx">CSS_FIXED_SIZE</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_FIXED_SIZE</span><span class="p">,</span>
             <span class="cm">/**</span>
<span class="cm">             * @property Style.CSS_LINK_CLOSE</span>
<span class="cm">             */</span>
            <span class="nx">CSS_LINK_CLOSE</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_LINK_CLOSE</span>
        <span class="p">};</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Builds the date label that will be displayed in the calendar header or</span>
<span class="cm">    * footer, depending on configuration.</span>
<span class="cm">    * @method buildMonthLabel</span>
<span class="cm">    * @return {String} The formatted calendar month label</span>
<span class="cm">    */</span>
    <span class="nx">buildMonthLabel</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">_buildMonthLabel</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">));</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">     * Helper method, to format a Month Year string, given a JavaScript Date, based on the </span>
<span class="cm">     * Calendar localization settings</span>
<span class="cm">     * </span>
<span class="cm">     * @method _buildMonthLabel</span>
<span class="cm">     * @private</span>
<span class="cm">     * @param {Date} date</span>
<span class="cm">     * @return {String} Formated month, year string</span>
<span class="cm">     */</span>
    <span class="nx">_buildMonthLabel</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">monthLabel</span>  <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_MONTHS</span><span class="p">[</span><span class="nx">date</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()]</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MY_LABEL_MONTH_SUFFIX</span><span class="p">,</span>
            <span class="nx">yearLabel</span> <span class="o">=</span> <span class="p">(</span><span class="nx">date</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">()</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">)</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MY_LABEL_YEAR_SUFFIX</span><span class="p">;</span>

        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MY_LABEL_MONTH_POSITION</span> <span class="o">==</span> <span class="mi">2</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MY_LABEL_YEAR_POSITION</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">return</span> <span class="nx">yearLabel</span> <span class="o">+</span> <span class="nx">monthLabel</span><span class="p">;</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="k">return</span> <span class="nx">monthLabel</span> <span class="o">+</span> <span class="nx">yearLabel</span><span class="p">;</span>
        <span class="p">}</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Builds the date digit that will be displayed in calendar cells</span>
<span class="cm">    * @method buildDayLabel</span>
<span class="cm">    * @param {Date} workingDate The current working date</span>
<span class="cm">    * @return {String} The formatted day label</span>
<span class="cm">    */</span>
    <span class="nx">buildDayLabel</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">return</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">();</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">     * Creates the title bar element and adds it to Calendar container DIV</span>
<span class="cm">     * </span>
<span class="cm">     * @method createTitleBar</span>
<span class="cm">     * @param {String} strTitle The title to display in the title bar</span>
<span class="cm">     * @return The title bar element</span>
<span class="cm">     */</span>
    <span class="nx">createTitleBar</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">strTitle</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">tDiv</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">CalendarGroup</span><span class="p">.</span><span class="nx">CSS_2UPTITLE</span><span class="p">,</span> <span class="s2">&quot;div&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">||</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;div&quot;</span><span class="p">);</span>
        <span class="nx">tDiv</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">CalendarGroup</span><span class="p">.</span><span class="nx">CSS_2UPTITLE</span><span class="p">;</span>
        <span class="nx">tDiv</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">strTitle</span><span class="p">;</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="nx">tDiv</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">);</span>
    
        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_WITH_TITLE</span><span class="p">);</span>
    
        <span class="k">return</span> <span class="nx">tDiv</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">     * Removes the title bar element from the DOM</span>
<span class="cm">     * </span>
<span class="cm">     * @method removeTitleBar</span>
<span class="cm">     */</span>
    <span class="nx">removeTitleBar</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">tDiv</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">CalendarGroup</span><span class="p">.</span><span class="nx">CSS_2UPTITLE</span><span class="p">,</span> <span class="s2">&quot;div&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">||</span> <span class="kc">null</span><span class="p">;</span>
        <span class="k">if</span> <span class="p">(</span><span class="nx">tDiv</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">Event</span><span class="p">.</span><span class="nx">purgeElement</span><span class="p">(</span><span class="nx">tDiv</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="nx">tDiv</span><span class="p">);</span>
        <span class="p">}</span>
        <span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_WITH_TITLE</span><span class="p">);</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">     * Creates the close button HTML element and adds it to Calendar container DIV</span>
<span class="cm">     * </span>
<span class="cm">     * @method createCloseButton</span>
<span class="cm">     * @return The close HTML element created</span>
<span class="cm">     */</span>
    <span class="nx">createCloseButton</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">cssClose</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">CalendarGroup</span><span class="p">.</span><span class="nx">CSS_2UPCLOSE</span><span class="p">,</span>
            <span class="nx">cssLinkClose</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_LINK_CLOSE</span><span class="p">,</span>
            <span class="nx">DEPR_CLOSE_PATH</span> <span class="o">=</span> <span class="s2">&quot;us/my/bn/x_d.gif&quot;</span><span class="p">,</span>
            
            <span class="nx">lnk</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="nx">cssLinkClose</span><span class="p">,</span> <span class="s2">&quot;a&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">)[</span><span class="mi">0</span><span class="p">],</span>
            <span class="nx">strings</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">STRINGS</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
            <span class="nx">closeStr</span> <span class="o">=</span> <span class="p">(</span><span class="nx">strings</span> <span class="o">&amp;&amp;</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">close</span><span class="p">)</span> <span class="o">?</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">close</span> <span class="o">:</span> <span class="s2">&quot;&quot;</span><span class="p">;</span>

        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">lnk</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">lnk</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;a&quot;</span><span class="p">);</span>
            <span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="nx">lnk</span><span class="p">,</span> <span class="s2">&quot;click&quot;</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">cal</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">cal</span><span class="p">.</span><span class="nx">hide</span><span class="p">();</span> 
                <span class="nx">Event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
            <span class="p">},</span> <span class="k">this</span><span class="p">);</span>
        <span class="p">}</span>

        <span class="nx">lnk</span><span class="p">.</span><span class="nx">href</span> <span class="o">=</span> <span class="s2">&quot;#&quot;</span><span class="p">;</span>
        <span class="nx">lnk</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">cssLinkClose</span><span class="p">;</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">Calendar</span><span class="p">.</span><span class="nx">IMG_ROOT</span> <span class="o">!==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">img</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="nx">cssClose</span><span class="p">,</span> <span class="s2">&quot;img&quot;</span><span class="p">,</span> <span class="nx">lnk</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">||</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;img&quot;</span><span class="p">);</span>
            <span class="nx">img</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">IMG_ROOT</span> <span class="o">+</span> <span class="nx">DEPR_CLOSE_PATH</span><span class="p">;</span>
            <span class="nx">img</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">cssClose</span><span class="p">;</span>
            <span class="nx">lnk</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">img</span><span class="p">);</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="nx">lnk</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s1">&#39;&lt;span class=&quot;&#39;</span> <span class="o">+</span> <span class="nx">cssClose</span> <span class="o">+</span> <span class="s1">&#39; &#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CLOSE</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span> <span class="o">+</span> <span class="nx">closeStr</span> <span class="o">+</span> <span class="s1">&#39;&lt;/span&gt;&#39;</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">lnk</span><span class="p">);</span>

        <span class="k">return</span> <span class="nx">lnk</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">     * Removes the close button HTML element from the DOM</span>
<span class="cm">     * </span>
<span class="cm">     * @method removeCloseButton</span>
<span class="cm">     */</span>
    <span class="nx">removeCloseButton</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">btn</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_LINK_CLOSE</span><span class="p">,</span> <span class="s2">&quot;a&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">||</span> <span class="kc">null</span><span class="p">;</span>
        <span class="k">if</span> <span class="p">(</span><span class="nx">btn</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">Event</span><span class="p">.</span><span class="nx">purgeElement</span><span class="p">(</span><span class="nx">btn</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="nx">btn</span><span class="p">);</span>
        <span class="p">}</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Renders the calendar header.</span>
<span class="cm">    * @method renderHeader</span>
<span class="cm">    * @param {Array} html The current working HTML array</span>
<span class="cm">    * @return {Array} The current working HTML array</span>
<span class="cm">    */</span>
    <span class="nx">renderHeader</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">html</span><span class="p">)</span> <span class="p">{</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Rendering header&quot;</span><span class="p">,</span> <span class="s2">&quot;render&quot;</span><span class="p">);</span>

        <span class="kd">var</span> <span class="nx">colSpan</span> <span class="o">=</span> <span class="mi">7</span><span class="p">,</span>
            <span class="nx">DEPR_NAV_LEFT</span> <span class="o">=</span> <span class="s2">&quot;us/tr/callt.gif&quot;</span><span class="p">,</span>
            <span class="nx">DEPR_NAV_RIGHT</span> <span class="o">=</span> <span class="s2">&quot;us/tr/calrt.gif&quot;</span><span class="p">,</span>
            <span class="nx">cfg</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">,</span>
            <span class="nx">pageDate</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
            <span class="nx">strings</span><span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">STRINGS</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
            <span class="nx">prevStr</span> <span class="o">=</span> <span class="p">(</span><span class="nx">strings</span> <span class="o">&amp;&amp;</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">previousMonth</span><span class="p">)</span> <span class="o">?</span>  <span class="nx">strings</span><span class="p">.</span><span class="nx">previousMonth</span> <span class="o">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
            <span class="nx">nextStr</span> <span class="o">=</span> <span class="p">(</span><span class="nx">strings</span> <span class="o">&amp;&amp;</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">nextMonth</span><span class="p">)</span> <span class="o">?</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">nextMonth</span> <span class="o">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
            <span class="nx">monthLabel</span><span class="p">;</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_HEADER</span><span class="p">.</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span>
            <span class="nx">colSpan</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span>
        <span class="p">}</span>
    
        <span class="k">if</span> <span class="p">(</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_FOOTER</span><span class="p">.</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span>
            <span class="nx">colSpan</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span>
        <span class="p">}</span>

        <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;&lt;thead&gt;&quot;</span><span class="p">;</span>
        <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span>  <span class="s2">&quot;&lt;tr&gt;&quot;</span><span class="p">;</span>
        <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span>   <span class="s1">&#39;&lt;th colspan=&quot;&#39;</span> <span class="o">+</span> <span class="nx">colSpan</span> <span class="o">+</span> <span class="s1">&#39;&quot; class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_HEADER_TEXT</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="p">;</span>
        <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span>    <span class="s1">&#39;&lt;div class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_HEADER</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="p">;</span>

        <span class="kd">var</span> <span class="nx">renderLeft</span><span class="p">,</span> <span class="nx">renderRight</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>

        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">index</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">renderLeft</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
            <span class="p">}</span>
            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">index</span> <span class="o">==</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;pages&quot;</span><span class="p">)</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="p">{</span>
                <span class="nx">renderRight</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="nx">renderLeft</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
            <span class="nx">renderRight</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
        <span class="p">}</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">renderLeft</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">monthLabel</span>  <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_buildMonthLabel</span><span class="p">(</span><span class="nx">DateMath</span><span class="p">.</span><span class="nx">subtract</span><span class="p">(</span><span class="nx">pageDate</span><span class="p">,</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">MONTH</span><span class="p">,</span> <span class="mi">1</span><span class="p">));</span>

            <span class="kd">var</span> <span class="nx">leftArrow</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">NAV_ARROW_LEFT</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
            <span class="c1">// Check for deprecated customization - If someone set IMG_ROOT, but didn&#39;t set NAV_ARROW_LEFT, then set NAV_ARROW_LEFT to the old deprecated value</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">leftArrow</span> <span class="o">===</span> <span class="kc">null</span> <span class="o">&amp;&amp;</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">IMG_ROOT</span> <span class="o">!==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">leftArrow</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">IMG_ROOT</span> <span class="o">+</span> <span class="nx">DEPR_NAV_LEFT</span><span class="p">;</span>
            <span class="p">}</span>
            <span class="kd">var</span> <span class="nx">leftStyle</span> <span class="o">=</span> <span class="p">(</span><span class="nx">leftArrow</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="o">?</span> <span class="s2">&quot;&quot;</span> <span class="o">:</span> <span class="s1">&#39; style=&quot;background-image:url(&#39;</span> <span class="o">+</span> <span class="nx">leftArrow</span> <span class="o">+</span> <span class="s1">&#39;)&quot;&#39;</span><span class="p">;</span>
            <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;a class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_NAV_LEFT</span> <span class="o">+</span> <span class="s1">&#39;&quot;&#39;</span> <span class="o">+</span> <span class="nx">leftStyle</span> <span class="o">+</span> <span class="s1">&#39; href=&quot;#&quot;&gt;&#39;</span> <span class="o">+</span> <span class="nx">prevStr</span> <span class="o">+</span> <span class="s1">&#39; (&#39;</span> <span class="o">+</span> <span class="nx">monthLabel</span> <span class="o">+</span> <span class="s1">&#39;)&#39;</span> <span class="o">+</span> <span class="s1">&#39;&lt;/a&gt;&#39;</span><span class="p">;</span>
        <span class="p">}</span>

        <span class="kd">var</span> <span class="nx">lbl</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">buildMonthLabel</span><span class="p">();</span>
        <span class="kd">var</span> <span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">parent</span> <span class="o">||</span> <span class="k">this</span><span class="p">;</span>
        <span class="k">if</span> <span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;navigator&quot;</span><span class="p">))</span> <span class="p">{</span>
            <span class="nx">lbl</span> <span class="o">=</span> <span class="s2">&quot;&lt;a class=\&quot;&quot;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_NAV</span> <span class="o">+</span> <span class="s2">&quot;\&quot; href=\&quot;#\&quot;&gt;&quot;</span> <span class="o">+</span> <span class="nx">lbl</span> <span class="o">+</span> <span class="s2">&quot;&lt;/a&gt;&quot;</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">lbl</span><span class="p">;</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">renderRight</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">monthLabel</span>  <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_buildMonthLabel</span><span class="p">(</span><span class="nx">DateMath</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">pageDate</span><span class="p">,</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">MONTH</span><span class="p">,</span> <span class="mi">1</span><span class="p">));</span>

            <span class="kd">var</span> <span class="nx">rightArrow</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">NAV_ARROW_RIGHT</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">rightArrow</span> <span class="o">===</span> <span class="kc">null</span> <span class="o">&amp;&amp;</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">IMG_ROOT</span> <span class="o">!==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">rightArrow</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">IMG_ROOT</span> <span class="o">+</span> <span class="nx">DEPR_NAV_RIGHT</span><span class="p">;</span>
            <span class="p">}</span>
            <span class="kd">var</span> <span class="nx">rightStyle</span> <span class="o">=</span> <span class="p">(</span><span class="nx">rightArrow</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="o">?</span> <span class="s2">&quot;&quot;</span> <span class="o">:</span> <span class="s1">&#39; style=&quot;background-image:url(&#39;</span> <span class="o">+</span> <span class="nx">rightArrow</span> <span class="o">+</span> <span class="s1">&#39;)&quot;&#39;</span><span class="p">;</span>
            <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;a class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_NAV_RIGHT</span> <span class="o">+</span> <span class="s1">&#39;&quot;&#39;</span> <span class="o">+</span> <span class="nx">rightStyle</span> <span class="o">+</span> <span class="s1">&#39; href=&quot;#&quot;&gt;&#39;</span> <span class="o">+</span> <span class="nx">nextStr</span> <span class="o">+</span> <span class="s1">&#39; (&#39;</span> <span class="o">+</span> <span class="nx">monthLabel</span> <span class="o">+</span> <span class="s1">&#39;)&#39;</span> <span class="o">+</span> <span class="s1">&#39;&lt;/a&gt;&#39;</span><span class="p">;</span>
        <span class="p">}</span>

        <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/div&gt;\n&lt;/th&gt;\n&lt;/tr&gt;&#39;</span><span class="p">;</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEKDAYS</span><span class="p">.</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span>
            <span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">buildWeekdays</span><span class="p">(</span><span class="nx">html</span><span class="p">);</span>
        <span class="p">}</span>
        
        <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/thead&gt;&#39;</span><span class="p">;</span>
    
        <span class="k">return</span> <span class="nx">html</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Renders the Calendar&#39;s weekday headers.</span>
<span class="cm">    * @method buildWeekdays</span>
<span class="cm">    * @param {Array} html The current working HTML array</span>
<span class="cm">    * @return {Array} The current working HTML array</span>
<span class="cm">    */</span>
    <span class="nx">buildWeekdays</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">html</span><span class="p">)</span> <span class="p">{</span>

        <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;tr class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_WEEKDAY_ROW</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="p">;</span>

        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_HEADER</span><span class="p">.</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span>
            <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;th&gt;&amp;#160;&lt;/th&gt;&#39;</span><span class="p">;</span>
        <span class="p">}</span>

        <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">i</span> <span class="o">&lt;</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;th class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_WEEKDAY_CELL</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;&lt;/th&gt;&#39;</span><span class="p">;</span>
        <span class="p">}</span>

        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_FOOTER</span><span class="p">.</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span>
            <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;th&gt;&amp;#160;&lt;/th&gt;&#39;</span><span class="p">;</span>
        <span class="p">}</span>

        <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/tr&gt;&#39;</span><span class="p">;</span>

        <span class="k">return</span> <span class="nx">html</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Renders the calendar body.</span>
<span class="cm">    * @method renderBody</span>
<span class="cm">    * @param {Date} workingDate The current working Date being used for the render process</span>
<span class="cm">    * @param {Array} html The current working HTML array</span>
<span class="cm">    * @return {Array} The current working HTML array</span>
<span class="cm">    */</span>
    <span class="nx">renderBody</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">html</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Rendering body&quot;</span><span class="p">,</span> <span class="s2">&quot;render&quot;</span><span class="p">);</span>

        <span class="kd">var</span> <span class="nx">startDay</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">START_WEEKDAY</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">preMonthDays</span> <span class="o">=</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDay</span><span class="p">();</span>
        <span class="k">if</span> <span class="p">(</span><span class="nx">startDay</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">preMonthDays</span> <span class="o">-=</span> <span class="nx">startDay</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">preMonthDays</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">preMonthDays</span> <span class="o">+=</span> <span class="mi">7</span><span class="p">;</span>
        <span class="p">}</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">monthDays</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">findMonthEnd</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">).</span><span class="nx">getDate</span><span class="p">();</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">postMonthDays</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">DISPLAY_DAYS</span><span class="o">-</span><span class="k">this</span><span class="p">.</span><span class="nx">preMonthDays</span><span class="o">-</span><span class="k">this</span><span class="p">.</span><span class="nx">monthDays</span><span class="p">;</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">preMonthDays</span> <span class="o">+</span> <span class="s2">&quot; preciding out-of-month days&quot;</span><span class="p">,</span> <span class="s2">&quot;render&quot;</span><span class="p">);</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">monthDays</span> <span class="o">+</span> <span class="s2">&quot; month days&quot;</span><span class="p">,</span> <span class="s2">&quot;render&quot;</span><span class="p">);</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">postMonthDays</span> <span class="o">+</span> <span class="s2">&quot; post-month days&quot;</span><span class="p">,</span> <span class="s2">&quot;render&quot;</span><span class="p">);</span>

        <span class="nx">workingDate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">subtract</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">DAY</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">preMonthDays</span><span class="p">);</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Calendar page starts on &quot;</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="p">,</span> <span class="s2">&quot;render&quot;</span><span class="p">);</span>
    
        <span class="kd">var</span> <span class="nx">weekNum</span><span class="p">,</span>
            <span class="nx">weekClass</span><span class="p">,</span>
            <span class="nx">weekPrefix</span> <span class="o">=</span> <span class="s2">&quot;w&quot;</span><span class="p">,</span>
            <span class="nx">cellPrefix</span> <span class="o">=</span> <span class="s2">&quot;_cell&quot;</span><span class="p">,</span>
            <span class="nx">workingDayPrefix</span> <span class="o">=</span> <span class="s2">&quot;wd&quot;</span><span class="p">,</span>
            <span class="nx">dayPrefix</span> <span class="o">=</span> <span class="s2">&quot;d&quot;</span><span class="p">,</span>
            <span class="nx">cellRenderers</span><span class="p">,</span>
            <span class="nx">renderer</span><span class="p">,</span>
            <span class="nx">t</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">today</span><span class="p">,</span>
            <span class="nx">cfg</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">,</span>
            <span class="nx">todayYear</span> <span class="o">=</span> <span class="nx">t</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">(),</span>
            <span class="nx">todayMonth</span> <span class="o">=</span> <span class="nx">t</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">(),</span>
            <span class="nx">todayDate</span> <span class="o">=</span> <span class="nx">t</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(),</span>
            <span class="nx">useDate</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
            <span class="nx">hideBlankWeeks</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">HIDE_BLANK_WEEKS</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
            <span class="nx">showWeekFooter</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_FOOTER</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
            <span class="nx">showWeekHeader</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_HEADER</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
            <span class="nx">mindate</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MINDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
            <span class="nx">maxdate</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MAXDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
            <span class="nx">yearOffset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">;</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">mindate</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">mindate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">clearTime</span><span class="p">(</span><span class="nx">mindate</span><span class="p">);</span>
        <span class="p">}</span>
        <span class="k">if</span> <span class="p">(</span><span class="nx">maxdate</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">maxdate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">clearTime</span><span class="p">(</span><span class="nx">maxdate</span><span class="p">);</span>
        <span class="p">}</span>

        <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;tbody class=&quot;m&#39;</span> <span class="o">+</span> <span class="p">(</span><span class="nx">useDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39; &#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_BODY</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="p">;</span>

        <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
            <span class="nx">tempDiv</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;div&quot;</span><span class="p">),</span>
            <span class="nx">cell</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;td&quot;</span><span class="p">);</span>

        <span class="nx">tempDiv</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">cell</span><span class="p">);</span>

        <span class="kd">var</span> <span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">parent</span> <span class="o">||</span> <span class="k">this</span><span class="p">;</span>

        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">r</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">r</span><span class="o">&lt;</span><span class="mi">6</span><span class="p">;</span><span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">weekNum</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getWeekNumber</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">startDay</span><span class="p">);</span>
            <span class="nx">weekClass</span> <span class="o">=</span> <span class="nx">weekPrefix</span> <span class="o">+</span> <span class="nx">weekNum</span><span class="p">;</span>

            <span class="c1">// Local OOM check for performance, since we already have pagedate</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">r</span> <span class="o">!==</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="nx">hideBlankWeeks</span> <span class="o">===</span> <span class="kc">true</span> <span class="o">&amp;&amp;</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span> <span class="o">!=</span> <span class="nx">useDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">())</span> <span class="p">{</span>
                <span class="k">break</span><span class="p">;</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;tr class=&quot;&#39;</span> <span class="o">+</span> <span class="nx">weekClass</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="p">;</span>

                <span class="k">if</span> <span class="p">(</span><span class="nx">showWeekHeader</span><span class="p">)</span> <span class="p">{</span> <span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">renderRowHeader</span><span class="p">(</span><span class="nx">weekNum</span><span class="p">,</span> <span class="nx">html</span><span class="p">);</span> <span class="p">}</span>

                <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">d</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="nx">d</span> <span class="o">&lt;</span> <span class="mi">7</span><span class="p">;</span> <span class="nx">d</span><span class="o">++</span><span class="p">){</span> <span class="c1">// Render actual days</span>

                    <span class="nx">cellRenderers</span> <span class="o">=</span> <span class="p">[];</span>

                    <span class="k">this</span><span class="p">.</span><span class="nx">clearElement</span><span class="p">(</span><span class="nx">cell</span><span class="p">);</span>
                    <span class="nx">cell</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL</span><span class="p">;</span>
                    <span class="nx">cell</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">id</span> <span class="o">+</span> <span class="nx">cellPrefix</span> <span class="o">+</span> <span class="nx">i</span><span class="p">;</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Rendering cell &quot;</span> <span class="o">+</span> <span class="nx">cell</span><span class="p">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s2">&quot; (&quot;</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">()</span> <span class="o">+</span> <span class="nx">yearOffset</span> <span class="o">+</span> <span class="s2">&quot;-&quot;</span> <span class="o">+</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;-&quot;</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()</span> <span class="o">+</span> <span class="s2">&quot;)&quot;</span><span class="p">,</span> <span class="s2">&quot;cellrender&quot;</span><span class="p">);</span>

                    <span class="k">if</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()</span>  <span class="o">==</span> <span class="nx">todayDate</span> <span class="o">&amp;&amp;</span> 
                        <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span>  <span class="o">==</span> <span class="nx">todayMonth</span> <span class="o">&amp;&amp;</span>
                        <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">()</span> <span class="o">==</span> <span class="nx">todayYear</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span><span class="o">=</span><span class="nx">cal</span><span class="p">.</span><span class="nx">renderCellStyleToday</span><span class="p">;</span>
                    <span class="p">}</span>

                    <span class="kd">var</span> <span class="nx">workingArray</span> <span class="o">=</span> <span class="p">[</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">(),</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()];</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">workingArray</span><span class="p">;</span> <span class="c1">// Add this date to cellDates</span>

                    <span class="c1">// Local OOM check for performance, since we already have pagedate</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span> <span class="o">!=</span> <span class="nx">useDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">())</span> <span class="p">{</span>
                        <span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span><span class="o">=</span><span class="nx">cal</span><span class="p">.</span><span class="nx">renderCellNotThisMonth</span><span class="p">;</span>
                    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="nx">workingDayPrefix</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDay</span><span class="p">());</span>
                        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="nx">dayPrefix</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">());</span>

                        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">s</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">s</span><span class="o">&lt;</span><span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="o">++</span><span class="nx">s</span><span class="p">)</span> <span class="p">{</span>

                            <span class="nx">renderer</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>

                            <span class="kd">var</span> <span class="nx">rArray</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span><span class="p">[</span><span class="nx">s</span><span class="p">],</span>
                                <span class="nx">type</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
                                <span class="nx">month</span><span class="p">,</span>
                                <span class="nx">day</span><span class="p">,</span>
                                <span class="nx">year</span><span class="p">;</span>

                            <span class="k">switch</span> <span class="p">(</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span>
                                <span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">DATE</span><span class="o">:</span>
                                    <span class="nx">month</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">];</span>
                                    <span class="nx">day</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">2</span><span class="p">];</span>
                                    <span class="nx">year</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">];</span>

                                    <span class="k">if</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span> <span class="o">==</span> <span class="nx">month</span> <span class="o">&amp;&amp;</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()</span> <span class="o">==</span> <span class="nx">day</span> <span class="o">&amp;&amp;</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">()</span> <span class="o">==</span> <span class="nx">year</span><span class="p">)</span> <span class="p">{</span>
                                        <span class="nx">renderer</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span>
                                        <span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">s</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span>
                                    <span class="p">}</span>
                                    <span class="k">break</span><span class="p">;</span>
                                <span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">MONTH_DAY</span><span class="o">:</span>
                                    <span class="nx">month</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">];</span>
                                    <span class="nx">day</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">];</span>

                                    <span class="k">if</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span> <span class="o">==</span> <span class="nx">month</span> <span class="o">&amp;&amp;</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()</span> <span class="o">==</span> <span class="nx">day</span><span class="p">)</span> <span class="p">{</span>
                                        <span class="nx">renderer</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span>
                                        <span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">s</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span>
                                    <span class="p">}</span>
                                    <span class="k">break</span><span class="p">;</span>
                                <span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">RANGE</span><span class="o">:</span>
                                    <span class="kd">var</span> <span class="nx">date1</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span>
                                        <span class="nx">date2</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span>
                                        <span class="nx">d1month</span> <span class="o">=</span> <span class="nx">date1</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span>
                                        <span class="nx">d1day</span> <span class="o">=</span> <span class="nx">date1</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span>
                                        <span class="nx">d1year</span> <span class="o">=</span> <span class="nx">date1</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
                                        <span class="nx">d1</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">d1year</span><span class="p">,</span> <span class="nx">d1month</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="nx">d1day</span><span class="p">),</span>
                                        <span class="nx">d2month</span> <span class="o">=</span> <span class="nx">date2</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span>
                                        <span class="nx">d2day</span> <span class="o">=</span> <span class="nx">date2</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span>
                                        <span class="nx">d2year</span> <span class="o">=</span> <span class="nx">date2</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
                                        <span class="nx">d2</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">d2year</span><span class="p">,</span> <span class="nx">d2month</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="nx">d2day</span><span class="p">);</span>

                                    <span class="k">if</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">&gt;=</span> <span class="nx">d1</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">&amp;&amp;</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">&lt;=</span> <span class="nx">d2</span><span class="p">.</span><span class="nx">getTime</span><span class="p">())</span> <span class="p">{</span>
                                        <span class="nx">renderer</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span>

                                        <span class="k">if</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span><span class="o">==</span><span class="nx">d2</span><span class="p">.</span><span class="nx">getTime</span><span class="p">())</span> <span class="p">{</span> 
                                            <span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">s</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span>
                                        <span class="p">}</span>
                                    <span class="p">}</span>
                                    <span class="k">break</span><span class="p">;</span>
                                <span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">WEEKDAY</span><span class="o">:</span>
                                    <span class="kd">var</span> <span class="nx">weekday</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">];</span>
                                    <span class="k">if</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDay</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span> <span class="o">==</span> <span class="nx">weekday</span><span class="p">)</span> <span class="p">{</span>
                                        <span class="nx">renderer</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span>
                                    <span class="p">}</span>
                                    <span class="k">break</span><span class="p">;</span>
                                <span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">MONTH</span><span class="o">:</span>
                                    <span class="nx">month</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">];</span>
                                    <span class="k">if</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span> <span class="o">==</span> <span class="nx">month</span><span class="p">)</span> <span class="p">{</span>
                                        <span class="nx">renderer</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span>
                                    <span class="p">}</span>
                                    <span class="k">break</span><span class="p">;</span>
                            <span class="p">}</span>

                            <span class="k">if</span> <span class="p">(</span><span class="nx">renderer</span><span class="p">)</span> <span class="p">{</span>
                                <span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span><span class="o">=</span><span class="nx">renderer</span><span class="p">;</span>
                            <span class="p">}</span>
                        <span class="p">}</span>

                    <span class="p">}</span>

                    <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="p">(</span><span class="nx">workingArray</span><span class="p">)</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span><span class="o">=</span><span class="nx">cal</span><span class="p">.</span><span class="nx">renderCellStyleSelected</span><span class="p">;</span> 
                    <span class="p">}</span>

                    <span class="k">if</span> <span class="p">((</span><span class="nx">mindate</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">&lt;</span> <span class="nx">mindate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()))</span> <span class="o">||</span>
                        <span class="p">(</span><span class="nx">maxdate</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">&gt;</span> <span class="nx">maxdate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()))</span>
                    <span class="p">)</span> <span class="p">{</span>
                        <span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span><span class="o">=</span><span class="nx">cal</span><span class="p">.</span><span class="nx">renderOutOfBoundsDate</span><span class="p">;</span>
                    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                        <span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span><span class="o">=</span><span class="nx">cal</span><span class="p">.</span><span class="nx">styleCellDefault</span><span class="p">;</span>
                        <span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span><span class="o">=</span><span class="nx">cal</span><span class="p">.</span><span class="nx">renderCellDefault</span><span class="p">;</span> 
                    <span class="p">}</span>

                    <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">x</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="nx">x</span> <span class="o">&lt;</span> <span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">x</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;renderer[&quot;</span> <span class="o">+</span> <span class="nx">x</span> <span class="o">+</span> <span class="s2">&quot;] for (&quot;</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">()</span> <span class="o">+</span> <span class="nx">yearOffset</span> <span class="o">+</span> <span class="s2">&quot;-&quot;</span> <span class="o">+</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;-&quot;</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()</span> <span class="o">+</span> <span class="s2">&quot;)&quot;</span><span class="p">,</span> <span class="s2">&quot;cellrender&quot;</span><span class="p">);</span>
                        <span class="k">if</span> <span class="p">(</span><span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">x</span><span class="p">].</span><span class="nx">call</span><span class="p">(</span><span class="nx">cal</span><span class="p">,</span> <span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="o">==</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">STOP_RENDER</span><span class="p">)</span> <span class="p">{</span>
                            <span class="k">break</span><span class="p">;</span>
                        <span class="p">}</span>
                    <span class="p">}</span>

                    <span class="nx">workingDate</span><span class="p">.</span><span class="nx">setTime</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">+</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">ONE_DAY_MS</span><span class="p">);</span>
                    <span class="c1">// Just in case we crossed DST/Summertime boundaries</span>
                    <span class="nx">workingDate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">clearTime</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">);</span>

                    <span class="k">if</span> <span class="p">(</span><span class="nx">i</span> <span class="o">&gt;=</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="nx">i</span> <span class="o">&lt;=</span> <span class="mi">6</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_TOP</span><span class="p">);</span>
                    <span class="p">}</span>
                    <span class="k">if</span> <span class="p">((</span><span class="nx">i</span> <span class="o">%</span> <span class="mi">7</span><span class="p">)</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_LEFT</span><span class="p">);</span>
                    <span class="p">}</span>
                    <span class="k">if</span> <span class="p">(((</span><span class="nx">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="o">%</span> <span class="mi">7</span><span class="p">)</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_RIGHT</span><span class="p">);</span>
                    <span class="p">}</span>

                    <span class="kd">var</span> <span class="nx">postDays</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">postMonthDays</span><span class="p">;</span> 
                    <span class="k">if</span> <span class="p">(</span><span class="nx">hideBlankWeeks</span> <span class="o">&amp;&amp;</span> <span class="nx">postDays</span> <span class="o">&gt;=</span> <span class="mi">7</span><span class="p">)</span> <span class="p">{</span>
                        <span class="kd">var</span> <span class="nx">blankWeeks</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nx">postDays</span><span class="o">/</span><span class="mi">7</span><span class="p">);</span>
                        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">p</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">p</span><span class="o">&lt;</span><span class="nx">blankWeeks</span><span class="p">;</span><span class="o">++</span><span class="nx">p</span><span class="p">)</span> <span class="p">{</span>
                            <span class="nx">postDays</span> <span class="o">-=</span> <span class="mi">7</span><span class="p">;</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                    
                    <span class="k">if</span> <span class="p">(</span><span class="nx">i</span> <span class="o">&gt;=</span> <span class="p">((</span><span class="k">this</span><span class="p">.</span><span class="nx">preMonthDays</span><span class="o">+</span><span class="nx">postDays</span><span class="o">+</span><span class="k">this</span><span class="p">.</span><span class="nx">monthDays</span><span class="p">)</span><span class="o">-</span><span class="mi">7</span><span class="p">))</span> <span class="p">{</span>
                        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_BOTTOM</span><span class="p">);</span>
                    <span class="p">}</span>
    
                    <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">tempDiv</span><span class="p">.</span><span class="nx">innerHTML</span><span class="p">;</span>
                    <span class="nx">i</span><span class="o">++</span><span class="p">;</span>
                <span class="p">}</span>
    
                <span class="k">if</span> <span class="p">(</span><span class="nx">showWeekFooter</span><span class="p">)</span> <span class="p">{</span> <span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">renderRowFooter</span><span class="p">(</span><span class="nx">weekNum</span><span class="p">,</span> <span class="nx">html</span><span class="p">);</span> <span class="p">}</span>
    
                <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/tr&gt;&#39;</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span>
    
        <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/tbody&gt;&#39;</span><span class="p">;</span>
    
        <span class="k">return</span> <span class="nx">html</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Renders the calendar footer. In the default implementation, there is</span>
<span class="cm">    * no footer.</span>
<span class="cm">    * @method renderFooter</span>
<span class="cm">    * @param {Array} html The current working HTML array</span>
<span class="cm">    * @return {Array} The current working HTML array</span>
<span class="cm">    */</span>
    <span class="nx">renderFooter</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">html</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">html</span><span class="p">;</span> <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Renders the calendar after it has been configured. The render() method has a specific call chain that will execute</span>
<span class="cm">    * when the method is called: renderHeader, renderBody, renderFooter.</span>
<span class="cm">    * Refer to the documentation for those methods for information on </span>
<span class="cm">    * individual render tasks.</span>
<span class="cm">    * @method render</span>
<span class="cm">    */</span>
    <span class="nx">render</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">beforeRenderEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>

        <span class="c1">// Find starting day of the current month</span>
        <span class="kd">var</span> <span class="nx">workingDate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">findMonthStart</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">));</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">resetRenderers</span><span class="p">();</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">.</span><span class="nx">length</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>

        <span class="nx">Event</span><span class="p">.</span><span class="nx">purgeElement</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>

        <span class="kd">var</span> <span class="nx">html</span> <span class="o">=</span> <span class="p">[];</span>

        <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;table cellSpacing=&quot;0&quot; class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CALENDAR</span> <span class="o">+</span> <span class="s1">&#39; y&#39;</span> <span class="o">+</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">()</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">)</span> <span class="o">+</span><span class="s1">&#39;&quot; id=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="p">;</span>
        <span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">renderHeader</span><span class="p">(</span><span class="nx">html</span><span class="p">);</span>
        <span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">renderBody</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">html</span><span class="p">);</span>
        <span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">renderFooter</span><span class="p">(</span><span class="nx">html</span><span class="p">);</span>
        <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/table&gt;&#39;</span><span class="p">;</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">html</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s2">&quot;\n&quot;</span><span class="p">);</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">applyListeners</span><span class="p">();</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">cells</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL</span><span class="p">,</span> <span class="s2">&quot;td&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">id</span><span class="p">);</span>
    
        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TITLE</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">CLOSE</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">IFRAME</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">renderEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Applies the Calendar&#39;s DOM listeners to applicable elements.</span>
<span class="cm">    * @method applyListeners</span>
<span class="cm">    */</span>
    <span class="nx">applyListeners</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">root</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span>
            <span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">parent</span> <span class="o">||</span> <span class="k">this</span><span class="p">,</span>
            <span class="nx">anchor</span> <span class="o">=</span> <span class="s2">&quot;a&quot;</span><span class="p">,</span>
            <span class="nx">click</span> <span class="o">=</span> <span class="s2">&quot;click&quot;</span><span class="p">;</span>

        <span class="kd">var</span> <span class="nx">linkLeft</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_NAV_LEFT</span><span class="p">,</span> <span class="nx">anchor</span><span class="p">,</span> <span class="nx">root</span><span class="p">),</span>
            <span class="nx">linkRight</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_NAV_RIGHT</span><span class="p">,</span> <span class="nx">anchor</span><span class="p">,</span> <span class="nx">root</span><span class="p">);</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">linkLeft</span> <span class="o">&amp;&amp;</span> <span class="nx">linkLeft</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">linkLeft</span> <span class="o">=</span> <span class="nx">linkLeft</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
            <span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">linkLeft</span><span class="p">,</span> <span class="nx">click</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">doPreviousMonthNav</span><span class="p">,</span> <span class="nx">cal</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="p">}</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">linkRight</span> <span class="o">&amp;&amp;</span> <span class="nx">linkRight</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">linkRight</span> <span class="o">=</span> <span class="nx">linkRight</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
            <span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">linkRight</span><span class="p">,</span> <span class="nx">click</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">doNextMonthNav</span><span class="p">,</span> <span class="nx">cal</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="p">}</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;navigator&quot;</span><span class="p">)</span> <span class="o">!==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">applyNavListeners</span><span class="p">();</span>
        <span class="p">}</span>

        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">domEventMap</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">el</span><span class="p">,</span><span class="nx">elements</span><span class="p">;</span>
            <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">cls</span> <span class="k">in</span> <span class="k">this</span><span class="p">.</span><span class="nx">domEventMap</span><span class="p">)</span> <span class="p">{</span> 
                <span class="k">if</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">domEventMap</span><span class="p">,</span> <span class="nx">cls</span><span class="p">))</span> <span class="p">{</span>
                    <span class="kd">var</span> <span class="nx">items</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">domEventMap</span><span class="p">[</span><span class="nx">cls</span><span class="p">];</span>
    
                    <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="p">(</span><span class="nx">items</span> <span class="k">instanceof</span> <span class="nb">Array</span><span class="p">))</span> <span class="p">{</span>
                        <span class="nx">items</span> <span class="o">=</span> <span class="p">[</span><span class="nx">items</span><span class="p">];</span>
                    <span class="p">}</span>
    
                    <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">i</span><span class="o">&lt;</span><span class="nx">items</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
                        <span class="kd">var</span> <span class="nx">item</span> <span class="o">=</span> <span class="nx">items</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
                        <span class="nx">elements</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="nx">cls</span><span class="p">,</span> <span class="nx">item</span><span class="p">.</span><span class="nx">tag</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">);</span>
    
                        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">c</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">c</span><span class="o">&lt;</span><span class="nx">elements</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
                            <span class="nx">el</span> <span class="o">=</span> <span class="nx">elements</span><span class="p">[</span><span class="nx">c</span><span class="p">];</span>
                             <span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">item</span><span class="p">.</span><span class="nx">event</span><span class="p">,</span> <span class="nx">item</span><span class="p">.</span><span class="nx">handler</span><span class="p">,</span> <span class="nx">item</span><span class="p">.</span><span class="nx">scope</span><span class="p">,</span> <span class="nx">item</span><span class="p">.</span><span class="nx">correct</span> <span class="p">);</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">}</span>

        <span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="s2">&quot;click&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">doSelectCell</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span>
        <span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="s2">&quot;mouseover&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">doCellMouseOver</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span>
        <span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="s2">&quot;mouseout&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">doCellMouseOut</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="nx">applyNavListeners</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">calParent</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">parent</span> <span class="o">||</span> <span class="k">this</span><span class="p">,</span>
            <span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="p">,</span>
            <span class="nx">navBtns</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_NAV</span><span class="p">,</span> <span class="s2">&quot;a&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">);</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">navBtns</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>

            <span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="nx">navBtns</span><span class="p">,</span> <span class="s2">&quot;click&quot;</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
                <span class="kd">var</span> <span class="nx">target</span> <span class="o">=</span> <span class="nx">Event</span><span class="p">.</span><span class="nx">getTarget</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
                <span class="c1">// this == navBtn</span>
                <span class="k">if</span> <span class="p">(</span><span class="k">this</span> <span class="o">===</span> <span class="nx">target</span> <span class="o">||</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">isAncestor</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">target</span><span class="p">))</span> <span class="p">{</span>
                    <span class="nx">Event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
                <span class="p">}</span>
                <span class="kd">var</span> <span class="nx">navigator</span> <span class="o">=</span> <span class="nx">calParent</span><span class="p">.</span><span class="nx">oNavigator</span><span class="p">;</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">navigator</span><span class="p">)</span> <span class="p">{</span>
                    <span class="kd">var</span> <span class="nx">pgdate</span> <span class="o">=</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;pagedate&quot;</span><span class="p">);</span>
                    <span class="nx">navigator</span><span class="p">.</span><span class="nx">setYear</span><span class="p">(</span><span class="nx">pgdate</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">()</span> <span class="o">+</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">);</span>
                    <span class="nx">navigator</span><span class="p">.</span><span class="nx">setMonth</span><span class="p">(</span><span class="nx">pgdate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">());</span>
                    <span class="nx">navigator</span><span class="p">.</span><span class="nx">show</span><span class="p">();</span>
                <span class="p">}</span>
            <span class="p">});</span>
        <span class="p">}</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Retrieves the Date object for the specified Calendar cell</span>
<span class="cm">    * @method getDateByCellId</span>
<span class="cm">    * @param {String} id The id of the cell</span>
<span class="cm">    * @return {Date} The Date object for the specified Calendar cell</span>
<span class="cm">    */</span>
    <span class="nx">getDateByCellId</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">date</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getDateFieldsByCellId</span><span class="p">(</span><span class="nx">id</span><span class="p">);</span>
        <span class="k">return</span> <span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="o">?</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">date</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="nx">date</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="nx">date</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> <span class="o">:</span> <span class="kc">null</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Retrieves the Date object for the specified Calendar cell</span>
<span class="cm">    * @method getDateFieldsByCellId</span>
<span class="cm">    * @param {String} id The id of the cell</span>
<span class="cm">    * @return {Array} The array of Date fields for the specified Calendar cell</span>
<span class="cm">    */</span>
    <span class="nx">getDateFieldsByCellId</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getIndexFromId</span><span class="p">(</span><span class="nx">id</span><span class="p">);</span>
        <span class="k">return</span> <span class="p">(</span><span class="nx">id</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">[</span><span class="nx">id</span><span class="p">]</span> <span class="o">:</span> <span class="kc">null</span><span class="p">;</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">     * Find the Calendar&#39;s cell index for a given date.</span>
<span class="cm">     * If the date is not found, the method returns -1.</span>
<span class="cm">     * &lt;p&gt;</span>
<span class="cm">     * The returned index can be used to lookup the cell HTMLElement  </span>
<span class="cm">     * using the Calendar&#39;s cells array or passed to selectCell to select </span>
<span class="cm">     * cells by index. </span>
<span class="cm">     * &lt;/p&gt;</span>
<span class="cm">     *</span>
<span class="cm">     * See &lt;a href=&quot;#cells&quot;&gt;cells&lt;/a&gt;, &lt;a href=&quot;#selectCell&quot;&gt;selectCell&lt;/a&gt;.</span>
<span class="cm">     *</span>
<span class="cm">     * @method getCellIndex</span>
<span class="cm">     * @param {Date} date JavaScript Date object, for which to find a cell index.</span>
<span class="cm">     * @return {Number} The index of the date in Calendars cellDates/cells arrays, or -1 if the date </span>
<span class="cm">     * is not on the curently rendered Calendar page.</span>
<span class="cm">     */</span>
    <span class="nx">getCellIndex</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">idx</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span>
        <span class="k">if</span> <span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">date</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">(),</span>
                <span class="nx">y</span> <span class="o">=</span> <span class="nx">date</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">(),</span>
                <span class="nx">d</span> <span class="o">=</span> <span class="nx">date</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(),</span>
                <span class="nx">dates</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">;</span>

            <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">dates</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
                <span class="kd">var</span> <span class="nx">cellDate</span> <span class="o">=</span> <span class="nx">dates</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">cellDate</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="nx">y</span> <span class="o">&amp;&amp;</span> <span class="nx">cellDate</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="nx">m</span><span class="o">+</span><span class="mi">1</span> <span class="o">&amp;&amp;</span> <span class="nx">cellDate</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">===</span> <span class="nx">d</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">idx</span> <span class="o">=</span> <span class="nx">i</span><span class="p">;</span>
                    <span class="k">break</span><span class="p">;</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">}</span>
        <span class="k">return</span> <span class="nx">idx</span><span class="p">;</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">     * Given the id used to mark each Calendar cell, this method</span>
<span class="cm">     * extracts the index number from the id.</span>
<span class="cm">     * </span>
<span class="cm">     * @param {String} strId The cell id</span>
<span class="cm">     * @return {Number} The index of the cell, or -1 if id does not contain an index number</span>
<span class="cm">     */</span>
    <span class="nx">getIndexFromId</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">strId</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">idx</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span>
            <span class="nx">li</span> <span class="o">=</span> <span class="nx">strId</span><span class="p">.</span><span class="nx">lastIndexOf</span><span class="p">(</span><span class="s2">&quot;_cell&quot;</span><span class="p">);</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">li</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">idx</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">strId</span><span class="p">.</span><span class="nx">substring</span><span class="p">(</span><span class="nx">li</span> <span class="o">+</span> <span class="mi">5</span><span class="p">),</span> <span class="mi">10</span><span class="p">);</span>
        <span class="p">}</span>

        <span class="k">return</span> <span class="nx">idx</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="c1">// BEGIN BUILT-IN TABLE CELL RENDERERS</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Renders a cell that falls before the minimum date or after the maximum date.</span>
<span class="cm">    * widget class.</span>
<span class="cm">    * @method renderOutOfBoundsDate</span>
<span class="cm">    * @param {Date}     workingDate  The current working Date object being used to generate the calendar</span>
<span class="cm">    * @param {HTMLTableCellElement} cell   The current working cell in the calendar</span>
<span class="cm">    * @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering</span>
<span class="cm">    *   should not be terminated</span>
<span class="cm">    */</span>
    <span class="nx">renderOutOfBoundsDate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_OOB</span><span class="p">);</span>
        <span class="nx">cell</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">();</span>
        <span class="k">return</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">STOP_RENDER</span><span class="p">;</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Renders the row header for a week.</span>
<span class="cm">    * @method renderRowHeader</span>
<span class="cm">    * @param {Number} weekNum The week number of the current row</span>
<span class="cm">    * @param {Array} cell The current working HTML array</span>
<span class="cm">    */</span>
    <span class="nx">renderRowHeader</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">weekNum</span><span class="p">,</span> <span class="nx">html</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;th class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_ROW_HEADER</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span> <span class="o">+</span> <span class="nx">weekNum</span> <span class="o">+</span> <span class="s1">&#39;&lt;/th&gt;&#39;</span><span class="p">;</span>
        <span class="k">return</span> <span class="nx">html</span><span class="p">;</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Renders the row footer for a week.</span>
<span class="cm">    * @method renderRowFooter</span>
<span class="cm">    * @param {Number} weekNum The week number of the current row</span>
<span class="cm">    * @param {Array} cell The current working HTML array</span>
<span class="cm">    */</span>
    <span class="nx">renderRowFooter</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">weekNum</span><span class="p">,</span> <span class="nx">html</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;th class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_ROW_FOOTER</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span> <span class="o">+</span> <span class="nx">weekNum</span> <span class="o">+</span> <span class="s1">&#39;&lt;/th&gt;&#39;</span><span class="p">;</span>
        <span class="k">return</span> <span class="nx">html</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Renders a single standard calendar cell in the calendar widget table.</span>
<span class="cm">    * All logic for determining how a standard default cell will be rendered is </span>
<span class="cm">    * encapsulated in this method, and must be accounted for when extending the</span>
<span class="cm">    * widget class.</span>
<span class="cm">    * @method renderCellDefault</span>
<span class="cm">    * @param {Date}     workingDate  The current working Date object being used to generate the calendar</span>
<span class="cm">    * @param {HTMLTableCellElement} cell   The current working cell in the calendar</span>
<span class="cm">    */</span>
    <span class="nx">renderCellDefault</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">cell</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s1">&#39;&lt;a href=&quot;#&quot; class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTOR</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">buildDayLabel</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;&lt;/a&gt;&quot;</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Styles a selectable cell.</span>
<span class="cm">    * @method styleCellDefault</span>
<span class="cm">    * @param {Date}     workingDate  The current working Date object being used to generate the calendar</span>
<span class="cm">    * @param {HTMLTableCellElement} cell   The current working cell in the calendar</span>
<span class="cm">    */</span>
    <span class="nx">styleCellDefault</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="p">);</span>
    <span class="p">},</span>
    
    
    <span class="cm">/**</span>
<span class="cm">    * Renders a single standard calendar cell using the CSS hightlight1 style</span>
<span class="cm">    * @method renderCellStyleHighlight1</span>
<span class="cm">    * @param {Date}     workingDate  The current working Date object being used to generate the calendar</span>
<span class="cm">    * @param {HTMLTableCellElement} cell   The current working cell in the calendar</span>
<span class="cm">    */</span>
    <span class="nx">renderCellStyleHighlight1</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_HIGHLIGHT1</span><span class="p">);</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Renders a single standard calendar cell using the CSS hightlight2 style</span>
<span class="cm">    * @method renderCellStyleHighlight2</span>
<span class="cm">    * @param {Date}     workingDate  The current working Date object being used to generate the calendar</span>
<span class="cm">    * @param {HTMLTableCellElement} cell   The current working cell in the calendar</span>
<span class="cm">    */</span>
    <span class="nx">renderCellStyleHighlight2</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_HIGHLIGHT2</span><span class="p">);</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Renders a single standard calendar cell using the CSS hightlight3 style</span>
<span class="cm">    * @method renderCellStyleHighlight3</span>
<span class="cm">    * @param {Date}     workingDate  The current working Date object being used to generate the calendar</span>
<span class="cm">    * @param {HTMLTableCellElement} cell   The current working cell in the calendar</span>
<span class="cm">    */</span>
    <span class="nx">renderCellStyleHighlight3</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_HIGHLIGHT3</span><span class="p">);</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Renders a single standard calendar cell using the CSS hightlight4 style</span>
<span class="cm">    * @method renderCellStyleHighlight4</span>
<span class="cm">    * @param {Date}     workingDate  The current working Date object being used to generate the calendar</span>
<span class="cm">    * @param {HTMLTableCellElement} cell   The current working cell in the calendar</span>
<span class="cm">    */</span>
    <span class="nx">renderCellStyleHighlight4</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_HIGHLIGHT4</span><span class="p">);</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Applies the default style used for rendering today&#39;s date to the current calendar cell</span>
<span class="cm">    * @method renderCellStyleToday</span>
<span class="cm">    * @param {Date}     workingDate  The current working Date object being used to generate the calendar</span>
<span class="cm">    * @param {HTMLTableCellElement} cell   The current working cell in the calendar</span>
<span class="cm">    */</span>
    <span class="nx">renderCellStyleToday</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_TODAY</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Applies the default style used for rendering selected dates to the current calendar cell</span>
<span class="cm">    * @method renderCellStyleSelected</span>
<span class="cm">    * @param {Date}     workingDate  The current working Date object being used to generate the calendar</span>
<span class="cm">    * @param {HTMLTableCellElement} cell   The current working cell in the calendar</span>
<span class="cm">    * @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering</span>
<span class="cm">    *   should not be terminated</span>
<span class="cm">    */</span>
    <span class="nx">renderCellStyleSelected</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTED</span><span class="p">);</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Applies the default style used for rendering dates that are not a part of the current</span>
<span class="cm">    * month (preceding or trailing the cells for the current month)</span>
<span class="cm">    * @method renderCellNotThisMonth</span>
<span class="cm">    * @param {Date}     workingDate  The current working Date object being used to generate the calendar</span>
<span class="cm">    * @param {HTMLTableCellElement} cell   The current working cell in the calendar</span>
<span class="cm">    * @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering</span>
<span class="cm">    *   should not be terminated</span>
<span class="cm">    */</span>
    <span class="nx">renderCellNotThisMonth</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_OOM</span><span class="p">);</span>
        <span class="nx">cell</span><span class="p">.</span><span class="nx">innerHTML</span><span class="o">=</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">();</span>
        <span class="k">return</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">STOP_RENDER</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Renders the current calendar cell as a non-selectable &quot;black-out&quot; date using the default</span>
<span class="cm">    * restricted style.</span>
<span class="cm">    * @method renderBodyCellRestricted</span>
<span class="cm">    * @param {Date}     workingDate  The current working Date object being used to generate the calendar</span>
<span class="cm">    * @param {HTMLTableCellElement} cell   The current working cell in the calendar</span>
<span class="cm">    * @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering</span>
<span class="cm">    *   should not be terminated</span>
<span class="cm">    */</span>
    <span class="nx">renderBodyCellRestricted</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL</span><span class="p">);</span>
        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_RESTRICTED</span><span class="p">);</span>
        <span class="nx">cell</span><span class="p">.</span><span class="nx">innerHTML</span><span class="o">=</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">();</span>
        <span class="k">return</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">STOP_RENDER</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="c1">// END BUILT-IN TABLE CELL RENDERERS</span>
    
    <span class="c1">// BEGIN MONTH NAVIGATION METHODS</span>

    <span class="cm">/**</span>
<span class="cm">    * Adds the designated number of months to the current calendar month, and sets the current</span>
<span class="cm">    * calendar page date to the new month.</span>
<span class="cm">    * @method addMonths</span>
<span class="cm">    * @param {Number} count The number of months to add to the current calendar</span>
<span class="cm">    */</span>
    <span class="nx">addMonths</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">count</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">cfgPageDate</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span>

        <span class="nx">prevDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgPageDate</span><span class="p">),</span>
        <span class="nx">newDate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">prevDate</span><span class="p">,</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">MONTH</span><span class="p">,</span> <span class="nx">count</span><span class="p">);</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgPageDate</span><span class="p">,</span> <span class="nx">newDate</span><span class="p">);</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">resetRenderers</span><span class="p">();</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">changePageEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">(</span><span class="nx">prevDate</span><span class="p">,</span> <span class="nx">newDate</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Subtracts the designated number of months from the current calendar month, and sets the current</span>
<span class="cm">    * calendar page date to the new month.</span>
<span class="cm">    * @method subtractMonths</span>
<span class="cm">    * @param {Number} count The number of months to subtract from the current calendar</span>
<span class="cm">    */</span>
    <span class="nx">subtractMonths</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">count</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">addMonths</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="o">*</span><span class="nx">count</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Adds the designated number of years to the current calendar, and sets the current</span>
<span class="cm">    * calendar page date to the new month.</span>
<span class="cm">    * @method addYears</span>
<span class="cm">    * @param {Number} count The number of years to add to the current calendar</span>
<span class="cm">    */</span>
    <span class="nx">addYears</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">count</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">cfgPageDate</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span>

        <span class="nx">prevDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgPageDate</span><span class="p">),</span>
        <span class="nx">newDate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">prevDate</span><span class="p">,</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">YEAR</span><span class="p">,</span> <span class="nx">count</span><span class="p">);</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgPageDate</span><span class="p">,</span> <span class="nx">newDate</span><span class="p">);</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">resetRenderers</span><span class="p">();</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">changePageEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">(</span><span class="nx">prevDate</span><span class="p">,</span> <span class="nx">newDate</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Subtcats the designated number of years from the current calendar, and sets the current</span>
<span class="cm">    * calendar page date to the new month.</span>
<span class="cm">    * @method subtractYears</span>
<span class="cm">    * @param {Number} count The number of years to subtract from the current calendar</span>
<span class="cm">    */</span>
    <span class="nx">subtractYears</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">count</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">addYears</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="o">*</span><span class="nx">count</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Navigates to the next month page in the calendar widget.</span>
<span class="cm">    * @method nextMonth</span>
<span class="cm">    */</span>
    <span class="nx">nextMonth</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">addMonths</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Navigates to the previous month page in the calendar widget.</span>
<span class="cm">    * @method previousMonth</span>
<span class="cm">    */</span>
    <span class="nx">previousMonth</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">addMonths</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Navigates to the next year in the currently selected month in the calendar widget.</span>
<span class="cm">    * @method nextYear</span>
<span class="cm">    */</span>
    <span class="nx">nextYear</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">addYears</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Navigates to the previous year in the currently selected month in the calendar widget.</span>
<span class="cm">    * @method previousYear</span>
<span class="cm">    */</span>
    <span class="nx">previousYear</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">addYears</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="c1">// END MONTH NAVIGATION METHODS</span>
    
    <span class="c1">// BEGIN SELECTION METHODS</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Resets the calendar widget to the originally selected month and year, and </span>
<span class="cm">    * sets the calendar to the initial selection(s).</span>
<span class="cm">    * @method reset</span>
<span class="cm">    */</span>
    <span class="nx">reset</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">resetProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">resetProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">resetEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Clears the selected dates in the current calendar widget and sets the calendar</span>
<span class="cm">    * to the current month and year.</span>
<span class="cm">    * @method clear</span>
<span class="cm">    */</span>
    <span class="nx">clear</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">[]);</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="k">new</span> <span class="nb">Date</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">today</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()));</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">clearEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Selects a date or a collection of dates on the current calendar. This method, by default,</span>
<span class="cm">    * does not call the render method explicitly. Once selection has completed, render must be </span>
<span class="cm">    * called for the changes to be reflected visually.</span>
<span class="cm">    *</span>
<span class="cm">    * Any dates which are OOB (out of bounds, not selectable) will not be selected and the array of </span>
<span class="cm">    * selected dates passed to the selectEvent will not contain OOB dates.</span>
<span class="cm">    * </span>
<span class="cm">    * If all dates are OOB, the no state change will occur; beforeSelect and select events will not be fired.</span>
<span class="cm">    *</span>
<span class="cm">    * @method select</span>
<span class="cm">    * @param {String/Date/Date[]} date The date string of dates to select in the current calendar. Valid formats are</span>
<span class="cm">    *        individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).</span>
<span class="cm">    *        Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).</span>
<span class="cm">    *        This method can also take a JavaScript Date object or an array of Date objects.</span>
<span class="cm">    * @return {Date[]}   Array of JavaScript Date objects representing all individual dates that are currently selected.</span>
<span class="cm">    */</span>
    <span class="nx">select</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Select: &quot;</span> <span class="o">+</span> <span class="nx">date</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span>

        <span class="kd">var</span> <span class="nx">aToBeSelected</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_toFieldArray</span><span class="p">(</span><span class="nx">date</span><span class="p">),</span>
            <span class="nx">validDates</span> <span class="o">=</span> <span class="p">[],</span>
            <span class="nx">selected</span> <span class="o">=</span> <span class="p">[],</span>
            <span class="nx">cfgSelected</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">;</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Selection field array: &quot;</span> <span class="o">+</span> <span class="nx">aToBeSelected</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span>
        
        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">a</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="nx">a</span> <span class="o">&lt;</span> <span class="nx">aToBeSelected</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">a</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">toSelect</span> <span class="o">=</span> <span class="nx">aToBeSelected</span><span class="p">[</span><span class="nx">a</span><span class="p">];</span>

            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">isDateOOB</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_toDate</span><span class="p">(</span><span class="nx">toSelect</span><span class="p">)))</span> <span class="p">{</span>

                <span class="k">if</span> <span class="p">(</span><span class="nx">validDates</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">beforeSelectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
                    <span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">);</span>
                <span class="p">}</span>
                <span class="nx">validDates</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">toSelect</span><span class="p">);</span>

                <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="p">(</span><span class="nx">toSelect</span><span class="p">)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> 
                    <span class="nx">selected</span><span class="p">[</span><span class="nx">selected</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">toSelect</span><span class="p">;</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">}</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">validDates</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;All provided dates were OOB. beforeSelect and select events not fired&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span> <span class="p">}</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">validDates</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="nx">selected</span><span class="p">);</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="nx">selected</span><span class="p">);</span>
            <span class="p">}</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">selectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">(</span><span class="nx">validDates</span><span class="p">);</span>
        <span class="p">}</span>

        <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSelectedDates</span><span class="p">();</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Selects a date on the current calendar by referencing the index of the cell that should be selected.</span>
<span class="cm">    * This method is used to easily select a single cell (usually with a mouse click) without having to do</span>
<span class="cm">    * a full render. The selected style is applied to the cell directly.</span>
<span class="cm">    *</span>
<span class="cm">    * If the cell is not marked with the CSS_CELL_SELECTABLE class (as is the case by default for out of month </span>
<span class="cm">    * or out of bounds cells), it will not be selected and in such a case beforeSelect and select events will not be fired.</span>
<span class="cm">    * </span>
<span class="cm">    * @method selectCell</span>
<span class="cm">    * @param {Number} cellIndex The index of the cell to select in the current calendar. </span>
<span class="cm">    * @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected.</span>
<span class="cm">    */</span>
    <span class="nx">selectCell</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">cellIndex</span><span class="p">)</span> <span class="p">{</span>

        <span class="kd">var</span> <span class="nx">cell</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cells</span><span class="p">[</span><span class="nx">cellIndex</span><span class="p">],</span>
            <span class="nx">cellDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">[</span><span class="nx">cellIndex</span><span class="p">],</span>
            <span class="nx">dCellDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_toDate</span><span class="p">(</span><span class="nx">cellDate</span><span class="p">),</span>
            <span class="nx">selectable</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="p">);</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Select: &quot;</span> <span class="o">+</span> <span class="nx">dCellDate</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span>
        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">selectable</span><span class="p">)</span> <span class="p">{</span><span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;The cell at cellIndex:&quot;</span> <span class="o">+</span> <span class="nx">cellIndex</span> <span class="o">+</span> <span class="s2">&quot; is not a selectable cell. beforeSelect, select events not fired&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span> <span class="p">}</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">selectable</span><span class="p">)</span> <span class="p">{</span>
    
            <span class="k">this</span><span class="p">.</span><span class="nx">beforeSelectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
    
            <span class="kd">var</span> <span class="nx">cfgSelected</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">;</span>
            <span class="kd">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">);</span>
    
            <span class="kd">var</span> <span class="nx">selectDate</span> <span class="o">=</span> <span class="nx">cellDate</span><span class="p">.</span><span class="nx">concat</span><span class="p">();</span>
    
            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="p">(</span><span class="nx">selectDate</span><span class="p">)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">selected</span><span class="p">[</span><span class="nx">selected</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">selectDate</span><span class="p">;</span>
            <span class="p">}</span>
            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="nx">selected</span><span class="p">);</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="nx">selected</span><span class="p">);</span>
            <span class="p">}</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">renderCellStyleSelected</span><span class="p">(</span><span class="nx">dCellDate</span><span class="p">,</span><span class="nx">cell</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">selectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">([</span><span class="nx">selectDate</span><span class="p">]);</span>
    
            <span class="k">this</span><span class="p">.</span><span class="nx">doCellMouseOut</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span>  
        <span class="p">}</span>
    
        <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSelectedDates</span><span class="p">();</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Deselects a date or a collection of dates on the current calendar. This method, by default,</span>
<span class="cm">    * does not call the render method explicitly. Once deselection has completed, render must be </span>
<span class="cm">    * called for the changes to be reflected visually.</span>
<span class="cm">    * </span>
<span class="cm">    * The method will not attempt to deselect any dates which are OOB (out of bounds, and hence not selectable) </span>
<span class="cm">    * and the array of deselected dates passed to the deselectEvent will not contain any OOB dates.</span>
<span class="cm">    * </span>
<span class="cm">    * If all dates are OOB, beforeDeselect and deselect events will not be fired.</span>
<span class="cm">    * </span>
<span class="cm">    * @method deselect</span>
<span class="cm">    * @param {String/Date/Date[]} date The date string of dates to deselect in the current calendar. Valid formats are</span>
<span class="cm">    *        individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).</span>
<span class="cm">    *        Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).</span>
<span class="cm">    *        This method can also take a JavaScript Date object or an array of Date objects. </span>
<span class="cm">    * @return {Date[]}   Array of JavaScript Date objects representing all individual dates that are currently selected.</span>
<span class="cm">    */</span>
    <span class="nx">deselect</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Deselect: &quot;</span> <span class="o">+</span> <span class="nx">date</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span>

        <span class="kd">var</span> <span class="nx">aToBeDeselected</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_toFieldArray</span><span class="p">(</span><span class="nx">date</span><span class="p">),</span>
            <span class="nx">validDates</span> <span class="o">=</span> <span class="p">[],</span>
            <span class="nx">selected</span> <span class="o">=</span> <span class="p">[],</span>
            <span class="nx">cfgSelected</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">;</span>

        <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Deselection field array: &quot;</span> <span class="o">+</span> <span class="nx">aToBeDeselected</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span>

        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">a</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="nx">a</span> <span class="o">&lt;</span> <span class="nx">aToBeDeselected</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">a</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">toDeselect</span> <span class="o">=</span> <span class="nx">aToBeDeselected</span><span class="p">[</span><span class="nx">a</span><span class="p">];</span>
    
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">isDateOOB</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_toDate</span><span class="p">(</span><span class="nx">toDeselect</span><span class="p">)))</span> <span class="p">{</span>
    
                <span class="k">if</span> <span class="p">(</span><span class="nx">validDates</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">beforeDeselectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
                    <span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">);</span>
                <span class="p">}</span>
    
                <span class="nx">validDates</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">toDeselect</span><span class="p">);</span>
    
                <span class="kd">var</span> <span class="nx">index</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="p">(</span><span class="nx">toDeselect</span><span class="p">);</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">index</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> 
                    <span class="nx">selected</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">}</span>
    
        <span class="k">if</span> <span class="p">(</span><span class="nx">validDates</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;All provided dates were OOB. beforeDeselect and deselect events not fired&quot;</span><span class="p">);}</span>
    
        <span class="k">if</span> <span class="p">(</span><span class="nx">validDates</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="nx">selected</span><span class="p">);</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="nx">selected</span><span class="p">);</span>
            <span class="p">}</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">deselectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">(</span><span class="nx">validDates</span><span class="p">);</span>
        <span class="p">}</span>
    
        <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSelectedDates</span><span class="p">();</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Deselects a date on the current calendar by referencing the index of the cell that should be deselected.</span>
<span class="cm">    * This method is used to easily deselect a single cell (usually with a mouse click) without having to do</span>
<span class="cm">    * a full render. The selected style is removed from the cell directly.</span>
<span class="cm">    * </span>
<span class="cm">    * If the cell is not marked with the CSS_CELL_SELECTABLE class (as is the case by default for out of month </span>
<span class="cm">    * or out of bounds cells), the method will not attempt to deselect it and in such a case, beforeDeselect and </span>
<span class="cm">    * deselect events will not be fired.</span>
<span class="cm">    * </span>
<span class="cm">    * @method deselectCell</span>
<span class="cm">    * @param {Number} cellIndex The index of the cell to deselect in the current calendar. </span>
<span class="cm">    * @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected.</span>
<span class="cm">    */</span>
    <span class="nx">deselectCell</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">cellIndex</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">cell</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cells</span><span class="p">[</span><span class="nx">cellIndex</span><span class="p">],</span>
            <span class="nx">cellDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">[</span><span class="nx">cellIndex</span><span class="p">],</span>
            <span class="nx">cellDateIndex</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="p">(</span><span class="nx">cellDate</span><span class="p">);</span>

        <span class="kd">var</span> <span class="nx">selectable</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="p">);</span>
        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">selectable</span><span class="p">)</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;The cell at cellIndex:&quot;</span> <span class="o">+</span> <span class="nx">cellIndex</span> <span class="o">+</span> <span class="s2">&quot; is not a selectable/deselectable cell&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span> <span class="p">}</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">selectable</span><span class="p">)</span> <span class="p">{</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">beforeDeselectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>

            <span class="kd">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
                <span class="nx">dCellDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_toDate</span><span class="p">(</span><span class="nx">cellDate</span><span class="p">),</span>
                <span class="nx">selectDate</span> <span class="o">=</span> <span class="nx">cellDate</span><span class="p">.</span><span class="nx">concat</span><span class="p">();</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">cellDateIndex</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">getMonth</span><span class="p">()</span> <span class="o">==</span> <span class="nx">dCellDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span> <span class="o">&amp;&amp;</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">getFullYear</span><span class="p">()</span> <span class="o">==</span> <span class="nx">dCellDate</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">())</span> <span class="p">{</span>
                    <span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTED</span><span class="p">);</span>
                <span class="p">}</span>
                <span class="nx">selected</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">cellDateIndex</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
            <span class="p">}</span>

            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">selected</span><span class="p">);</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">selected</span><span class="p">);</span>
            <span class="p">}</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">deselectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">([</span><span class="nx">selectDate</span><span class="p">]);</span>
        <span class="p">}</span>

        <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSelectedDates</span><span class="p">();</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Deselects all dates on the current calendar.</span>
<span class="cm">    * @method deselectAll</span>
<span class="cm">    * @return {Date[]}  Array of JavaScript Date objects representing all individual dates that are currently selected.</span>
<span class="cm">    *      Assuming that this function executes properly, the return value should be an empty array.</span>
<span class="cm">    *      However, the empty array is returned for the sake of being able to check the selection status</span>
<span class="cm">    *      of the calendar.</span>
<span class="cm">    */</span>
    <span class="nx">deselectAll</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">beforeDeselectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
        
        <span class="kd">var</span> <span class="nx">cfgSelected</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span>
            <span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">),</span>
            <span class="nx">count</span> <span class="o">=</span> <span class="nx">selected</span><span class="p">.</span><span class="nx">length</span><span class="p">,</span>
            <span class="nx">sel</span> <span class="o">=</span> <span class="nx">selected</span><span class="p">.</span><span class="nx">concat</span><span class="p">();</span>

        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="p">[]);</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="p">[]);</span>
        <span class="p">}</span>
        
        <span class="k">if</span> <span class="p">(</span><span class="nx">count</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">deselectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">(</span><span class="nx">sel</span><span class="p">);</span>
        <span class="p">}</span>
    
        <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSelectedDates</span><span class="p">();</span>
    <span class="p">},</span>
    
    <span class="c1">// END SELECTION METHODS</span>
    
    <span class="c1">// BEGIN TYPE CONVERSION METHODS</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Converts a date (either a JavaScript Date object, or a date string) to the internal data structure</span>
<span class="cm">    * used to represent dates: [[yyyy,mm,dd],[yyyy,mm,dd]].</span>
<span class="cm">    * @method _toFieldArray</span>
<span class="cm">    * @private</span>
<span class="cm">    * @param {String/Date/Date[]} date The date string of dates to deselect in the current calendar. Valid formats are</span>
<span class="cm">    *        individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).</span>
<span class="cm">    *        Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).</span>
<span class="cm">    *        This method can also take a JavaScript Date object or an array of Date objects. </span>
<span class="cm">    * @return {Array[](Number[])} Array of date field arrays</span>
<span class="cm">    */</span>
    <span class="nx">_toFieldArray</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">returnDate</span> <span class="o">=</span> <span class="p">[];</span>
    
        <span class="k">if</span> <span class="p">(</span><span class="nx">date</span> <span class="k">instanceof</span> <span class="nb">Date</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">returnDate</span> <span class="o">=</span> <span class="p">[[</span><span class="nx">date</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">(),</span> <span class="nx">date</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span> <span class="nx">date</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()]];</span>
        <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isString</span><span class="p">(</span><span class="nx">date</span><span class="p">))</span> <span class="p">{</span>
            <span class="nx">returnDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDates</span><span class="p">(</span><span class="nx">date</span><span class="p">);</span>
        <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isArray</span><span class="p">(</span><span class="nx">date</span><span class="p">))</span> <span class="p">{</span>
            <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">i</span><span class="o">&lt;</span><span class="nx">date</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
                <span class="kd">var</span> <span class="nx">d</span> <span class="o">=</span> <span class="nx">date</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
                <span class="nx">returnDate</span><span class="p">[</span><span class="nx">returnDate</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="nx">d</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">(),</span><span class="nx">d</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="nx">d</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()];</span>
            <span class="p">}</span>
        <span class="p">}</span>
        
        <span class="k">return</span> <span class="nx">returnDate</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Converts a date field array [yyyy,mm,dd] to a JavaScript Date object. The date field array</span>
<span class="cm">    * is the format in which dates are as provided as arguments to selectEvent and deselectEvent listeners.</span>
<span class="cm">    * </span>
<span class="cm">    * @method toDate</span>
<span class="cm">    * @param {Number[]} dateFieldArray The date field array to convert to a JavaScript Date.</span>
<span class="cm">    * @return {Date} JavaScript Date object representing the date field array.</span>
<span class="cm">    */</span>
    <span class="nx">toDate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">dateFieldArray</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">_toDate</span><span class="p">(</span><span class="nx">dateFieldArray</span><span class="p">);</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Converts a date field array [yyyy,mm,dd] to a JavaScript Date object.</span>
<span class="cm">    * @method _toDate</span>
<span class="cm">    * @private</span>
<span class="cm">    * @deprecated Made public, toDate </span>
<span class="cm">    * @param {Number[]}  dateFieldArray The date field array to convert to a JavaScript Date.</span>
<span class="cm">    * @return {Date} JavaScript Date object representing the date field array</span>
<span class="cm">    */</span>
    <span class="nx">_toDate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">dateFieldArray</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">if</span> <span class="p">(</span><span class="nx">dateFieldArray</span> <span class="k">instanceof</span> <span class="nb">Date</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">return</span> <span class="nx">dateFieldArray</span><span class="p">;</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="k">return</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">dateFieldArray</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="nx">dateFieldArray</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="nx">dateFieldArray</span><span class="p">[</span><span class="mi">2</span><span class="p">]);</span>
        <span class="p">}</span>
    <span class="p">},</span>
    
    <span class="c1">// END TYPE CONVERSION METHODS </span>
    
    <span class="c1">// BEGIN UTILITY METHODS</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Determines if 2 field arrays are equal.</span>
<span class="cm">    * @method _fieldArraysAreEqual</span>
<span class="cm">    * @private</span>
<span class="cm">    * @param {Number[]} array1 The first date field array to compare</span>
<span class="cm">    * @param {Number[]} array2 The first date field array to compare</span>
<span class="cm">    * @return {Boolean} The boolean that represents the equality of the two arrays</span>
<span class="cm">    */</span>
    <span class="nx">_fieldArraysAreEqual</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">array1</span><span class="p">,</span> <span class="nx">array2</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">match</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
    
        <span class="k">if</span> <span class="p">(</span><span class="nx">array1</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">==</span><span class="nx">array2</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">&amp;&amp;</span><span class="nx">array1</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">==</span><span class="nx">array2</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">&amp;&amp;</span><span class="nx">array1</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">==</span><span class="nx">array2</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> <span class="p">{</span>
            <span class="nx">match</span><span class="o">=</span><span class="kc">true</span><span class="p">;</span> 
        <span class="p">}</span>
    
        <span class="k">return</span> <span class="nx">match</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Gets the index of a date field array [yyyy,mm,dd] in the current list of selected dates.</span>
<span class="cm">    * @method _indexOfSelectedFieldArray</span>
<span class="cm">    * @private</span>
<span class="cm">    * @param {Number[]}  find The date field array to search for</span>
<span class="cm">    * @return {Number}   The index of the date field array within the collection of selected dates.</span>
<span class="cm">    *        -1 will be returned if the date is not found.</span>
<span class="cm">    */</span>
    <span class="nx">_indexOfSelectedFieldArray</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">find</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span>
            <span class="nx">seldates</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
    
        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">s</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">s</span><span class="o">&lt;</span><span class="nx">seldates</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="o">++</span><span class="nx">s</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">sArray</span> <span class="o">=</span> <span class="nx">seldates</span><span class="p">[</span><span class="nx">s</span><span class="p">];</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">find</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">==</span><span class="nx">sArray</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">&amp;&amp;</span><span class="nx">find</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">==</span><span class="nx">sArray</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">&amp;&amp;</span><span class="nx">find</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">==</span><span class="nx">sArray</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> <span class="p">{</span>
                <span class="nx">selected</span> <span class="o">=</span> <span class="nx">s</span><span class="p">;</span>
                <span class="k">break</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span>
    
        <span class="k">return</span> <span class="nx">selected</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Determines whether a given date is OOM (out of month).</span>
<span class="cm">    * @method isDateOOM</span>
<span class="cm">    * @param {Date} date The JavaScript Date object for which to check the OOM status</span>
<span class="cm">    * @return {Boolean} true if the date is OOM</span>
<span class="cm">    */</span>
    <span class="nx">isDateOOM</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">return</span> <span class="p">(</span><span class="nx">date</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span> <span class="o">!=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">getMonth</span><span class="p">());</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Determines whether a given date is OOB (out of bounds - less than the mindate or more than the maxdate).</span>
<span class="cm">    *</span>
<span class="cm">    * @method isDateOOB</span>
<span class="cm">    * @param {Date} date The JavaScript Date object for which to check the OOB status</span>
<span class="cm">    * @return {Boolean} true if the date is OOB</span>
<span class="cm">    */</span>
    <span class="nx">isDateOOB</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">minDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MINDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
            <span class="nx">maxDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MAXDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
            <span class="nx">dm</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">;</span>
        
        <span class="k">if</span> <span class="p">(</span><span class="nx">minDate</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">minDate</span> <span class="o">=</span> <span class="nx">dm</span><span class="p">.</span><span class="nx">clearTime</span><span class="p">(</span><span class="nx">minDate</span><span class="p">);</span>
        <span class="p">}</span> 
        <span class="k">if</span> <span class="p">(</span><span class="nx">maxDate</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">maxDate</span> <span class="o">=</span> <span class="nx">dm</span><span class="p">.</span><span class="nx">clearTime</span><span class="p">(</span><span class="nx">maxDate</span><span class="p">);</span>
        <span class="p">}</span>
    
        <span class="kd">var</span> <span class="nx">clearedDate</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">Date</span><span class="p">(</span><span class="nx">date</span><span class="p">.</span><span class="nx">getTime</span><span class="p">());</span>
        <span class="nx">clearedDate</span> <span class="o">=</span> <span class="nx">dm</span><span class="p">.</span><span class="nx">clearTime</span><span class="p">(</span><span class="nx">clearedDate</span><span class="p">);</span>
    
        <span class="k">return</span> <span class="p">((</span><span class="nx">minDate</span> <span class="o">&amp;&amp;</span> <span class="nx">clearedDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">&lt;</span> <span class="nx">minDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">())</span> <span class="o">||</span> <span class="p">(</span><span class="nx">maxDate</span> <span class="o">&amp;&amp;</span> <span class="nx">clearedDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">&gt;</span> <span class="nx">maxDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()));</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">     * Parses a pagedate configuration property value. The value can either be specified as a string of form &quot;mm/yyyy&quot; or a Date object </span>
<span class="cm">     * and is parsed into a Date object normalized to the first day of the month. If no value is passed in, the month and year from today&#39;s date are used to create the Date object </span>
<span class="cm">     * @method _parsePageDate</span>
<span class="cm">     * @private</span>
<span class="cm">     * @param {Date|String} date Pagedate value which needs to be parsed</span>
<span class="cm">     * @return {Date} The Date object representing the pagedate</span>
<span class="cm">     */</span>
    <span class="nx">_parsePageDate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">parsedDate</span><span class="p">;</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">date</span> <span class="k">instanceof</span> <span class="nb">Date</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">parsedDate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">findMonthStart</span><span class="p">(</span><span class="nx">date</span><span class="p">);</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="kd">var</span> <span class="nx">month</span><span class="p">,</span> <span class="nx">year</span><span class="p">,</span> <span class="nx">aMonthYear</span><span class="p">;</span>
                <span class="nx">aMonthYear</span> <span class="o">=</span> <span class="nx">date</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">DATE_FIELD_DELIMITER</span><span class="p">.</span><span class="nx">key</span><span class="p">));</span>
                <span class="nx">month</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">aMonthYear</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_MONTH_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="mi">10</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">;</span>
                <span class="nx">year</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">aMonthYear</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_YEAR_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="mi">10</span><span class="p">)</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">;</span>

                <span class="nx">parsedDate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">year</span><span class="p">,</span> <span class="nx">month</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
            <span class="p">}</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="nx">parsedDate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">today</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">(),</span> <span class="k">this</span><span class="p">.</span><span class="nx">today</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">(),</span> <span class="mi">1</span><span class="p">);</span>
        <span class="p">}</span>
        <span class="k">return</span> <span class="nx">parsedDate</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="c1">// END UTILITY METHODS</span>
    
    <span class="c1">// BEGIN EVENT HANDLERS</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Event executed before a date is selected in the calendar widget.</span>
<span class="cm">    * @deprecated Event handlers for this event should be susbcribed to beforeSelectEvent.</span>
<span class="cm">    */</span>
    <span class="nx">onBeforeSelect</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MULTI_SELECT</span><span class="p">.</span><span class="nx">key</span><span class="p">)</span> <span class="o">===</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">callChildFunction</span><span class="p">(</span><span class="s2">&quot;clearAllBodyCellStyles&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTED</span><span class="p">);</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">deselectAll</span><span class="p">();</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">clearAllBodyCellStyles</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTED</span><span class="p">);</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">deselectAll</span><span class="p">();</span>
            <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Event executed when a date is selected in the calendar widget.</span>
<span class="cm">    * @param {Array} selected An array of date field arrays representing which date or dates were selected. Example: [ [2006,8,6],[2006,8,7],[2006,8,8] ]</span>
<span class="cm">    * @deprecated Event handlers for this event should be susbcribed to selectEvent.</span>
<span class="cm">    */</span>
    <span class="nx">onSelect</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">selected</span><span class="p">)</span> <span class="p">{</span> <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Event executed before a date is deselected in the calendar widget.</span>
<span class="cm">    * @deprecated Event handlers for this event should be susbcribed to beforeDeselectEvent.</span>
<span class="cm">    */</span>
    <span class="nx">onBeforeDeselect</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Event executed when a date is deselected in the calendar widget.</span>
<span class="cm">    * @param {Array} selected An array of date field arrays representing which date or dates were deselected. Example: [ [2006,8,6],[2006,8,7],[2006,8,8] ]</span>
<span class="cm">    * @deprecated Event handlers for this event should be susbcribed to deselectEvent.</span>
<span class="cm">    */</span>
    <span class="nx">onDeselect</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">deselected</span><span class="p">)</span> <span class="p">{</span> <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Event executed when the user navigates to a different calendar page.</span>
<span class="cm">    * @deprecated Event handlers for this event should be susbcribed to changePageEvent.</span>
<span class="cm">    */</span>
    <span class="nx">onChangePage</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Event executed when the calendar widget is rendered.</span>
<span class="cm">    * @deprecated Event handlers for this event should be susbcribed to renderEvent.</span>
<span class="cm">    */</span>
    <span class="nx">onRender</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Event executed when the calendar widget is reset to its original state.</span>
<span class="cm">    * @deprecated Event handlers for this event should be susbcribed to resetEvemt.</span>
<span class="cm">    */</span>
    <span class="nx">onReset</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span> <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Event executed when the calendar widget is completely cleared to the current month with no selections.</span>
<span class="cm">    * @deprecated Event handlers for this event should be susbcribed to clearEvent.</span>
<span class="cm">    */</span>
    <span class="nx">onClear</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span> <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Validates the calendar widget. This method has no default implementation</span>
<span class="cm">    * and must be extended by subclassing the widget.</span>
<span class="cm">    * @return Should return true if the widget validates, and false if</span>
<span class="cm">    * it doesn&#39;t.</span>
<span class="cm">    * @type Boolean</span>
<span class="cm">    */</span>
    <span class="nx">validate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span> <span class="p">},</span>
    
    <span class="c1">// END EVENT HANDLERS</span>
    
    <span class="c1">// BEGIN DATE PARSE METHODS</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Converts a date string to a date field array</span>
<span class="cm">    * @private</span>
<span class="cm">    * @param {String} sDate   Date string. Valid formats are mm/dd and mm/dd/yyyy.</span>
<span class="cm">    * @return    A date field array representing the string passed to the method</span>
<span class="cm">    * @type Array[](Number[])</span>
<span class="cm">    */</span>
    <span class="nx">_parseDate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">sDate</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">aDate</span> <span class="o">=</span> <span class="nx">sDate</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">DATE_FIELD_DELIMITER</span><span class="p">),</span>
            <span class="nx">rArray</span><span class="p">;</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">aDate</span><span class="p">.</span><span class="nx">length</span> <span class="o">==</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">rArray</span> <span class="o">=</span> <span class="p">[</span><span class="nx">aDate</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MD_MONTH_POSITION</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span><span class="nx">aDate</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MD_DAY_POSITION</span><span class="o">-</span><span class="mi">1</span><span class="p">]];</span>
            <span class="nx">rArray</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">MONTH_DAY</span><span class="p">;</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="nx">rArray</span> <span class="o">=</span> <span class="p">[</span><span class="nx">aDate</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MDY_YEAR_POSITION</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">,</span> <span class="nx">aDate</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MDY_MONTH_POSITION</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span><span class="nx">aDate</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MDY_DAY_POSITION</span><span class="o">-</span><span class="mi">1</span><span class="p">]];</span>
            <span class="nx">rArray</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">DATE</span><span class="p">;</span>
        <span class="p">}</span>

        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">i</span><span class="o">&lt;</span><span class="nx">rArray</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">rArray</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">rArray</span><span class="p">[</span><span class="nx">i</span><span class="p">],</span> <span class="mi">10</span><span class="p">);</span>
        <span class="p">}</span>
    
        <span class="k">return</span> <span class="nx">rArray</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Converts a multi or single-date string to an array of date field arrays</span>
<span class="cm">    * @private</span>
<span class="cm">    * @param {String} sDates  Date string with one or more comma-delimited dates. Valid formats are mm/dd, mm/dd/yyyy, mm/dd/yyyy-mm/dd/yyyy</span>
<span class="cm">    * @return       An array of date field arrays</span>
<span class="cm">    * @type Array[](Number[])</span>
<span class="cm">    */</span>
    <span class="nx">_parseDates</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">sDates</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">aReturn</span> <span class="o">=</span> <span class="p">[],</span>
            <span class="nx">aDates</span> <span class="o">=</span> <span class="nx">sDates</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">DATE_DELIMITER</span><span class="p">);</span>
        
        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">d</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">d</span><span class="o">&lt;</span><span class="nx">aDates</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="o">++</span><span class="nx">d</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">sDate</span> <span class="o">=</span> <span class="nx">aDates</span><span class="p">[</span><span class="nx">d</span><span class="p">];</span>
    
            <span class="k">if</span> <span class="p">(</span><span class="nx">sDate</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">DATE_RANGE_DELIMITER</span><span class="p">)</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
                <span class="c1">// This is a range</span>
                <span class="kd">var</span> <span class="nx">aRange</span> <span class="o">=</span> <span class="nx">sDate</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">DATE_RANGE_DELIMITER</span><span class="p">),</span>
                    <span class="nx">dateStart</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDate</span><span class="p">(</span><span class="nx">aRange</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span>
                    <span class="nx">dateEnd</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDate</span><span class="p">(</span><span class="nx">aRange</span><span class="p">[</span><span class="mi">1</span><span class="p">]),</span>
                    <span class="nx">fullRange</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseRange</span><span class="p">(</span><span class="nx">dateStart</span><span class="p">,</span> <span class="nx">dateEnd</span><span class="p">);</span>

                <span class="nx">aReturn</span> <span class="o">=</span> <span class="nx">aReturn</span><span class="p">.</span><span class="nx">concat</span><span class="p">(</span><span class="nx">fullRange</span><span class="p">);</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="c1">// This is not a range</span>
                <span class="kd">var</span> <span class="nx">aDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDate</span><span class="p">(</span><span class="nx">sDate</span><span class="p">);</span>
                <span class="nx">aReturn</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">aDate</span><span class="p">);</span>
            <span class="p">}</span>
        <span class="p">}</span>
        <span class="k">return</span> <span class="nx">aReturn</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Converts a date range to the full list of included dates</span>
<span class="cm">    * @private</span>
<span class="cm">    * @param {Number[]} startDate Date field array representing the first date in the range</span>
<span class="cm">    * @param {Number[]} endDate  Date field array representing the last date in the range</span>
<span class="cm">    * @return       An array of date field arrays</span>
<span class="cm">    * @type Array[](Number[])</span>
<span class="cm">    */</span>
    <span class="nx">_parseRange</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">startDate</span><span class="p">,</span> <span class="nx">endDate</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">dCurrent</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">startDate</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="nx">startDate</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="nx">startDate</span><span class="p">[</span><span class="mi">2</span><span class="p">]),</span><span class="nx">DateMath</span><span class="p">.</span><span class="nx">DAY</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
            <span class="nx">dEnd</span>     <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">endDate</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>  <span class="nx">endDate</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span>  <span class="nx">endDate</span><span class="p">[</span><span class="mi">2</span><span class="p">]),</span>
            <span class="nx">results</span> <span class="o">=</span> <span class="p">[];</span>

        <span class="nx">results</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">startDate</span><span class="p">);</span>
        <span class="k">while</span> <span class="p">(</span><span class="nx">dCurrent</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">&lt;=</span> <span class="nx">dEnd</span><span class="p">.</span><span class="nx">getTime</span><span class="p">())</span> <span class="p">{</span>
            <span class="nx">results</span><span class="p">.</span><span class="nx">push</span><span class="p">([</span><span class="nx">dCurrent</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">(),</span><span class="nx">dCurrent</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="nx">dCurrent</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()]);</span>
            <span class="nx">dCurrent</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">dCurrent</span><span class="p">,</span><span class="nx">DateMath</span><span class="p">.</span><span class="nx">DAY</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span>
        <span class="p">}</span>
        <span class="k">return</span> <span class="nx">results</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="c1">// END DATE PARSE METHODS</span>
    
    <span class="c1">// BEGIN RENDERER METHODS</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Resets the render stack of the current calendar to its original pre-render value.</span>
<span class="cm">    */</span>
    <span class="nx">resetRenderers</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_renderStack</span><span class="p">.</span><span class="nx">concat</span><span class="p">();</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">     * Removes all custom renderers added to the Calendar through the addRenderer, addMonthRenderer and </span>
<span class="cm">     * addWeekdayRenderer methods. Calendar&#39;s render method needs to be called after removing renderers </span>
<span class="cm">     * to re-render the Calendar without custom renderers applied.</span>
<span class="cm">     */</span>
    <span class="nx">removeRenderers</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">_renderStack</span> <span class="o">=</span> <span class="p">[];</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span> <span class="o">=</span> <span class="p">[];</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Clears the inner HTML, CSS class and style information from the specified cell.</span>
<span class="cm">    * @method clearElement</span>
<span class="cm">    * @param {HTMLTableCellElement} cell The cell to clear</span>
<span class="cm">    */</span> 
    <span class="nx">clearElement</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">cell</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s2">&quot;&amp;#160;&quot;</span><span class="p">;</span>
        <span class="nx">cell</span><span class="p">.</span><span class="nx">className</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">;</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Adds a renderer to the render stack. The function reference passed to this method will be executed</span>
<span class="cm">    * when a date cell matches the conditions specified in the date string for this renderer.</span>
<span class="cm">    * @method addRenderer</span>
<span class="cm">    * @param {String} sDates  A date string to associate with the specified renderer. Valid formats</span>
<span class="cm">    *         include date (12/24/2005), month/day (12/24), and range (12/1/2004-1/1/2005)</span>
<span class="cm">    * @param {Function} fnRender The function executed to render cells that match the render rules for this renderer.</span>
<span class="cm">    */</span>
    <span class="nx">addRenderer</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">sDates</span><span class="p">,</span> <span class="nx">fnRender</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">aDates</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDates</span><span class="p">(</span><span class="nx">sDates</span><span class="p">);</span>
        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">i</span><span class="o">&lt;</span><span class="nx">aDates</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">aDate</span> <span class="o">=</span> <span class="nx">aDates</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
        
            <span class="k">if</span> <span class="p">(</span><span class="nx">aDate</span><span class="p">.</span><span class="nx">length</span> <span class="o">==</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// this is either a range or a month/day combo</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">aDate</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">instanceof</span> <span class="nb">Array</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// this is a range</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">_addRenderer</span><span class="p">(</span><span class="nx">Calendar</span><span class="p">.</span><span class="nx">RANGE</span><span class="p">,</span><span class="nx">aDate</span><span class="p">,</span><span class="nx">fnRender</span><span class="p">);</span>
                <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="c1">// this is a month/day combo</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">_addRenderer</span><span class="p">(</span><span class="nx">Calendar</span><span class="p">.</span><span class="nx">MONTH_DAY</span><span class="p">,</span><span class="nx">aDate</span><span class="p">,</span><span class="nx">fnRender</span><span class="p">);</span>
                <span class="p">}</span>
            <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">aDate</span><span class="p">.</span><span class="nx">length</span> <span class="o">==</span> <span class="mi">3</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">_addRenderer</span><span class="p">(</span><span class="nx">Calendar</span><span class="p">.</span><span class="nx">DATE</span><span class="p">,</span><span class="nx">aDate</span><span class="p">,</span><span class="nx">fnRender</span><span class="p">);</span>
            <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">},</span>
    
    <span class="cm">/**</span>
<span class="cm">    * The private method used for adding cell renderers to the local render stack.</span>
<span class="cm">    * This method is called by other methods that set the renderer type prior to the method call.</span>
<span class="cm">    * @method _addRenderer</span>
<span class="cm">    * @private</span>
<span class="cm">    * @param {String} type  The type string that indicates the type of date renderer being added.</span>
<span class="cm">    *         Values are YAHOO.widget.Calendar.DATE, YAHOO.widget.Calendar.MONTH_DAY, YAHOO.widget.Calendar.WEEKDAY,</span>
<span class="cm">    *         YAHOO.widget.Calendar.RANGE, YAHOO.widget.Calendar.MONTH</span>
<span class="cm">    * @param {Array}  aDates  An array of dates used to construct the renderer. The format varies based</span>
<span class="cm">    *         on the renderer type</span>
<span class="cm">    * @param {Function} fnRender The function executed to render cells that match the render rules for this renderer.</span>
<span class="cm">    */</span>
    <span class="nx">_addRenderer</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">aDates</span><span class="p">,</span> <span class="nx">fnRender</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">add</span> <span class="o">=</span> <span class="p">[</span><span class="nx">type</span><span class="p">,</span><span class="nx">aDates</span><span class="p">,</span><span class="nx">fnRender</span><span class="p">];</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span><span class="p">.</span><span class="nx">unshift</span><span class="p">(</span><span class="nx">add</span><span class="p">);</span> 
        <span class="k">this</span><span class="p">.</span><span class="nx">_renderStack</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span><span class="p">.</span><span class="nx">concat</span><span class="p">();</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Adds a month to the render stack. The function reference passed to this method will be executed</span>
<span class="cm">    * when a date cell matches the month passed to this method.</span>
<span class="cm">    * @method addMonthRenderer</span>
<span class="cm">    * @param {Number} month  The month (1-12) to associate with this renderer</span>
<span class="cm">    * @param {Function} fnRender The function executed to render cells that match the render rules for this renderer.</span>
<span class="cm">    */</span>
    <span class="nx">addMonthRenderer</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">month</span><span class="p">,</span> <span class="nx">fnRender</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">_addRenderer</span><span class="p">(</span><span class="nx">Calendar</span><span class="p">.</span><span class="nx">MONTH</span><span class="p">,[</span><span class="nx">month</span><span class="p">],</span><span class="nx">fnRender</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Adds a weekday to the render stack. The function reference passed to this method will be executed</span>
<span class="cm">    * when a date cell matches the weekday passed to this method.</span>
<span class="cm">    * @method addWeekdayRenderer</span>
<span class="cm">    * @param {Number} weekday  The weekday (Sunday = 1, Monday = 2 ... Saturday = 7) to associate with this renderer</span>
<span class="cm">    * @param {Function} fnRender The function executed to render cells that match the render rules for this renderer.</span>
<span class="cm">    */</span>
    <span class="nx">addWeekdayRenderer</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">weekday</span><span class="p">,</span> <span class="nx">fnRender</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">_addRenderer</span><span class="p">(</span><span class="nx">Calendar</span><span class="p">.</span><span class="nx">WEEKDAY</span><span class="p">,[</span><span class="nx">weekday</span><span class="p">],</span><span class="nx">fnRender</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="c1">// END RENDERER METHODS</span>
    
    <span class="c1">// BEGIN CSS METHODS</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Removes all styles from all body cells in the current calendar table.</span>
<span class="cm">    * @method clearAllBodyCellStyles</span>
<span class="cm">    * @param {style} style The CSS class name to remove from all calendar body cells</span>
<span class="cm">    */</span>
    <span class="nx">clearAllBodyCellStyles</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">style</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">c</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">c</span><span class="o">&lt;</span><span class="k">this</span><span class="p">.</span><span class="nx">cells</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="o">++</span><span class="nx">c</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cells</span><span class="p">[</span><span class="nx">c</span><span class="p">],</span><span class="nx">style</span><span class="p">);</span>
        <span class="p">}</span>
    <span class="p">},</span>
    
    <span class="c1">// END CSS METHODS</span>
    
    <span class="c1">// BEGIN GETTER/SETTER METHODS</span>
    <span class="cm">/**</span>
<span class="cm">    * Sets the calendar&#39;s month explicitly</span>
<span class="cm">    * @method setMonth</span>
<span class="cm">    * @param {Number} month  The numeric month, from 0 (January) to 11 (December)</span>
<span class="cm">    */</span>
    <span class="nx">setMonth</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">month</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">cfgPageDate</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span>
            <span class="nx">current</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgPageDate</span><span class="p">);</span>
        <span class="nx">current</span><span class="p">.</span><span class="nx">setMonth</span><span class="p">(</span><span class="nb">parseInt</span><span class="p">(</span><span class="nx">month</span><span class="p">,</span> <span class="mi">10</span><span class="p">));</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgPageDate</span><span class="p">,</span> <span class="nx">current</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Sets the calendar&#39;s year explicitly.</span>
<span class="cm">    * @method setYear</span>
<span class="cm">    * @param {Number} year  The numeric 4-digit year</span>
<span class="cm">    */</span>
    <span class="nx">setYear</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">year</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">cfgPageDate</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span>
            <span class="nx">current</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgPageDate</span><span class="p">);</span>

        <span class="nx">current</span><span class="p">.</span><span class="nx">setFullYear</span><span class="p">(</span><span class="nb">parseInt</span><span class="p">(</span><span class="nx">year</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">);</span>
        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgPageDate</span><span class="p">,</span> <span class="nx">current</span><span class="p">);</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Gets the list of currently selected dates from the calendar.</span>
<span class="cm">    * @method getSelectedDates</span>
<span class="cm">    * @return {Date[]} An array of currently selected JavaScript Date objects.</span>
<span class="cm">    */</span>
    <span class="nx">getSelectedDates</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">returnDates</span> <span class="o">=</span> <span class="p">[],</span>
            <span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>

        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">d</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">d</span><span class="o">&lt;</span><span class="nx">selected</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="o">++</span><span class="nx">d</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">dateArray</span> <span class="o">=</span> <span class="nx">selected</span><span class="p">[</span><span class="nx">d</span><span class="p">];</span>

            <span class="kd">var</span> <span class="nx">date</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">dateArray</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="nx">dateArray</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="nx">dateArray</span><span class="p">[</span><span class="mi">2</span><span class="p">]);</span>
            <span class="nx">returnDates</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">date</span><span class="p">);</span>
        <span class="p">}</span>

        <span class="nx">returnDates</span><span class="p">.</span><span class="nx">sort</span><span class="p">(</span> <span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">b</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">a</span><span class="o">-</span><span class="nx">b</span><span class="p">;</span> <span class="p">}</span> <span class="p">);</span>
        <span class="k">return</span> <span class="nx">returnDates</span><span class="p">;</span>
    <span class="p">},</span>

    <span class="c1">/// END GETTER/SETTER METHODS ///</span>
    
    <span class="cm">/**</span>
<span class="cm">    * Hides the Calendar&#39;s outer container from view.</span>
<span class="cm">    * @method hide</span>
<span class="cm">    */</span>
    <span class="nx">hide</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">beforeHideEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">())</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">&quot;none&quot;</span><span class="p">;</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">hideEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
        <span class="p">}</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Shows the Calendar&#39;s outer container.</span>
<span class="cm">    * @method show</span>
<span class="cm">    */</span>
    <span class="nx">show</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">beforeShowEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">())</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">&quot;block&quot;</span><span class="p">;</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">showEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
        <span class="p">}</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">    * Returns a string representing the current browser.</span>
<span class="cm">    * @deprecated As of 2.3.0, environment information is available in YAHOO.env.ua</span>
<span class="cm">    * @see YAHOO.env.ua</span>
<span class="cm">    * @property browser</span>
<span class="cm">    * @type String</span>
<span class="cm">    */</span>
    <span class="nx">browser</span> <span class="o">:</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
                <span class="kd">var</span> <span class="nx">ua</span> <span class="o">=</span> <span class="nx">navigator</span><span class="p">.</span><span class="nx">userAgent</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">();</span>
                      <span class="k">if</span> <span class="p">(</span><span class="nx">ua</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">&#39;opera&#39;</span><span class="p">)</span><span class="o">!=-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// Opera (check first in case of spoof)</span>
                         <span class="k">return</span> <span class="s1">&#39;opera&#39;</span><span class="p">;</span>
                      <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">ua</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">&#39;msie 7&#39;</span><span class="p">)</span><span class="o">!=-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// IE7</span>
                         <span class="k">return</span> <span class="s1">&#39;ie7&#39;</span><span class="p">;</span>
                      <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">ua</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">&#39;msie&#39;</span><span class="p">)</span> <span class="o">!=-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// IE</span>
                         <span class="k">return</span> <span class="s1">&#39;ie&#39;</span><span class="p">;</span>
                      <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">ua</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">&#39;safari&#39;</span><span class="p">)</span><span class="o">!=-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// Safari (check before Gecko because it includes &quot;like Gecko&quot;)</span>
                         <span class="k">return</span> <span class="s1">&#39;safari&#39;</span><span class="p">;</span>
                      <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">ua</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">&#39;gecko&#39;</span><span class="p">)</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// Gecko</span>
                         <span class="k">return</span> <span class="s1">&#39;gecko&#39;</span><span class="p">;</span>
                      <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                         <span class="k">return</span> <span class="kc">false</span><span class="p">;</span>
                      <span class="p">}</span>
                <span class="p">})(),</span>
    <span class="cm">/**</span>
<span class="cm">    * Returns a string representation of the object.</span>
<span class="cm">    * @method toString</span>
<span class="cm">    * @return {String} A string representation of the Calendar object.</span>
<span class="cm">    */</span>
    <span class="nx">toString</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="k">return</span> <span class="s2">&quot;Calendar &quot;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">id</span><span class="p">;</span>
    <span class="p">},</span>

    <span class="cm">/**</span>
<span class="cm">     * Destroys the Calendar instance. The method will remove references</span>
<span class="cm">     * to HTML elements, remove any event listeners added by the Calendar,</span>
<span class="cm">     * and destroy the Config and CalendarNavigator instances it has created.</span>
<span class="cm">     *</span>
<span class="cm">     * @method destroy</span>
<span class="cm">     */</span>
    <span class="nx">destroy</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>

        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">beforeDestroyEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">())</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>

            <span class="c1">// Child objects</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">navigator</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">cal</span><span class="p">.</span><span class="nx">navigator</span><span class="p">.</span><span class="nx">destroy</span><span class="p">();</span>
            <span class="p">}</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">cfg</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">cal</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">destroy</span><span class="p">();</span>
            <span class="p">}</span>

            <span class="c1">// DOM event listeners</span>
            <span class="nx">Event</span><span class="p">.</span><span class="nx">purgeElement</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>

            <span class="c1">// Generated markup/DOM - Not removing the container DIV since we didn&#39;t create it.</span>
            <span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_WITH_TITLE</span><span class="p">);</span>
            <span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CONTAINER</span><span class="p">);</span>
            <span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_SINGLE</span><span class="p">);</span>
            <span class="nx">cal</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">;</span>

            <span class="c1">// JS-to-DOM references</span>
            <span class="nx">cal</span><span class="p">.</span><span class="nx">oDomContainer</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
            <span class="nx">cal</span><span class="p">.</span><span class="nx">cells</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">destroyEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
        <span class="p">}</span>
    <span class="p">}</span>
<span class="p">};</span>

<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">Calendar</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">;</span>

<span class="cm">/**</span>
<span class="cm">* @namespace YAHOO.widget</span>
<span class="cm">* @class Calendar_Core</span>
<span class="cm">* @extends YAHOO.widget.Calendar</span>
<span class="cm">* @deprecated The old Calendar_Core class is no longer necessary.</span>
<span class="cm">*/</span>
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">Calendar_Core</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">Calendar</span><span class="p">;</span>

<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">Cal_Core</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">Calendar</span><span class="p">;</span>

<span class="p">})();</span>
</pre></div>

                    </div>
			</div>
		</div>
		<div class="yui-b">
            <div class="nav">

                    <div id="moduleList" class="module">
                        <h4>Modules</h4>
                        <ul class="content">
                                <li class=""><a href="module_animation.html" title="animation">animation</a></li>
                                <li class=""><a href="module_autocomplete.html" title="autocomplete">autocomplete</a></li>
                                <li class=""><a href="module_button.html" title="button">button</a></li>
                                <li class="selected"><a href="module_calendar.html" title="calendar">calendar</a></li>
                                <li class=""><a href="module_carousel.html" title="carousel">carousel</a></li>
                                <li class=""><a href="module_charts.html" title="charts">charts</a></li>
                                <li class=""><a href="module_colorpicker.html" title="colorpicker">colorpicker</a></li>
                                <li class=""><a href="module_connection.html" title="connection">connection</a></li>
                                <li class=""><a href="module_container.html" title="container">container</a></li>
                                <li class=""><a href="module_cookie.html" title="cookie">cookie</a></li>
                                <li class=""><a href="module_datasource.html" title="datasource">datasource</a></li>
                                <li class=""><a href="module_datatable.html" title="datatable">datatable</a></li>
                                <li class=""><a href="module_datemath.html" title="datemath">datemath</a></li>
                                <li class=""><a href="module_dom.html" title="dom">dom</a></li>
                                <li class=""><a href="module_dragdrop.html" title="dragdrop">dragdrop</a></li>
                                <li class=""><a href="module_editor.html" title="editor">editor</a></li>
                                <li class=""><a href="module_element.html" title="element">element</a></li>
                                <li class=""><a href="module_element-delegate.html" title="element-delegate">element-delegate</a></li>
                                <li class=""><a href="module_event.html" title="event">event</a></li>
                                <li class=""><a href="module_event-delegate.html" title="event-delegate">event-delegate</a></li>
                                <li class=""><a href="module_event-mouseenter.html" title="event-mouseenter">event-mouseenter</a></li>
                                <li class=""><a href="module_event-simulate.html" title="event-simulate">event-simulate</a></li>
                                <li class=""><a href="module_get.html" title="get">get</a></li>
                                <li class=""><a href="module_history.html" title="history">history</a></li>
                                <li class=""><a href="module_imagecropper.html" title="imagecropper">imagecropper</a></li>
                                <li class=""><a href="module_imageloader.html" title="imageloader">imageloader</a></li>
                                <li class=""><a href="module_json.html" title="json">json</a></li>
                                <li class=""><a href="module_layout.html" title="layout">layout</a></li>
                                <li class=""><a href="module_logger.html" title="logger">logger</a></li>
                                <li class=""><a href="module_menu.html" title="menu">menu</a></li>
                                <li class=""><a href="module_paginator.html" title="paginator">paginator</a></li>
                                <li class=""><a href="module_profiler.html" title="profiler">profiler</a></li>
                                <li class=""><a href="module_profilerviewer.html" title="profilerviewer">profilerviewer</a></li>
                                <li class=""><a href="module_progressbar.html" title="progressbar">progressbar</a></li>
                                <li class=""><a href="module_resize.html" title="resize">resize</a></li>
                                <li class=""><a href="module_selector.html" title="selector">selector</a></li>
                                <li class=""><a href="module_slider.html" title="slider">slider</a></li>
                                <li class=""><a href="module_storage.html" title="Storage">Storage</a></li>
                                <li class=""><a href="module_stylesheet.html" title="stylesheet">stylesheet</a></li>
                                <li class=""><a href="module_swf.html" title="swf">swf</a></li>
                                <li class=""><a href="module_swfdetect.html" title="swfdetect">swfdetect</a></li>
                                <li class=""><a href="module_swfstore.html" title="swfstore">swfstore</a></li>
                                <li class=""><a href="module_tabview.html" title="tabview">tabview</a></li>
                                <li class=""><a href="module_treeview.html" title="treeview">treeview</a></li>
                                <li class=""><a href="module_uploader.html" title="uploader">uploader</a></li>
                                <li class=""><a href="module_yahoo.html" title="yahoo">yahoo</a></li>
                                <li class=""><a href="module_yuiloader.html" title="yuiloader">yuiloader</a></li>
                                <li class=""><a href="module_yuitest.html" title="yuitest">yuitest</a></li>
                        </ul>
                    </div>

                    <div id="classList" class="module">
                        <h4>Classes</h4>
                        <ul class="content">
                                <li class=""><a href="YAHOO.widget.Calendar.html" title="YAHOO.widget.Calendar">YAHOO.widget.Calendar</a></li>
                                <li class=""><a href="YAHOO.widget.Calendar2up.html" title="YAHOO.widget.Calendar2up">YAHOO.widget.Calendar2up</a></li>
                                <li class=""><a href="YAHOO.widget.Calendar_Core.html" title="YAHOO.widget.Calendar_Core">YAHOO.widget.Calendar_Core</a></li>
                                <li class=""><a href="YAHOO.widget.CalendarGroup.html" title="YAHOO.widget.CalendarGroup">YAHOO.widget.CalendarGroup</a></li>
                                <li class=""><a href="YAHOO.widget.CalendarNavigator.html" title="YAHOO.widget.CalendarNavigator">YAHOO.widget.CalendarNavigator</a></li>
                        </ul>
                    </div>

                    <div id="fileList" class="module">
                        <h4>Files</h4>
                        <ul class="content">        
                                <li class="selected"><a href="Calendar.js.html" title="Calendar.js">Calendar.js</a></li>
                                <li class=""><a href="CalendarGroup.js.html" title="CalendarGroup.js">CalendarGroup.js</a></li>
                                <li class=""><a href="CalendarNavigator.js.html" title="CalendarNavigator.js">CalendarNavigator.js</a></li>
                        </ul>
                    </div>





            </div>
		</div>
	</div>
	<div id="ft">
        <hr />
        Copyright &copy; 2010 Yahoo! Inc. All rights reserved.
	</div>
</div>
<script type="text/javascript">

    var ALL_YUI_PROPS = [{"access": "", "host": "YAHOO.widget.Calendar", "name": "addMonthRenderer", "url": "YAHOO.widget.Calendar.html#method_addMonthRenderer", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "addMonthRenderer", "url": "YAHOO.widget.CalendarGroup.html#method_addMonthRenderer", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "addMonths", "url": "YAHOO.widget.Calendar.html#method_addMonths", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "addMonths", "url": "YAHOO.widget.CalendarGroup.html#method_addMonths", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_addRenderer", "url": "YAHOO.widget.Calendar.html#method__addRenderer", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "addRenderer", "url": "YAHOO.widget.Calendar.html#method_addRenderer", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "addRenderer", "url": "YAHOO.widget.CalendarGroup.html#method_addRenderer", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "addWeekdayRenderer", "url": "YAHOO.widget.Calendar.html#method_addWeekdayRenderer", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "addWeekdayRenderer", "url": "YAHOO.widget.CalendarGroup.html#method_addWeekdayRenderer", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "addYears", "url": "YAHOO.widget.Calendar.html#method_addYears", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "addYears", "url": "YAHOO.widget.CalendarGroup.html#method_addYears", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "applyKeyListeners", "url": "YAHOO.widget.CalendarNavigator.html#method_applyKeyListeners", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "applyListeners", "url": "YAHOO.widget.Calendar.html#method_applyListeners", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "applyListeners", "url": "YAHOO.widget.CalendarNavigator.html#method_applyListeners", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeDeselectEvent", "url": "YAHOO.widget.Calendar.html#event_beforeDeselectEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeDeselectEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeDeselectEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeDestroyEvent", "url": "YAHOO.widget.Calendar.html#event_beforeDestroyEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeDestroyEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeDestroyEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeHideEvent", "url": "YAHOO.widget.Calendar.html#event_beforeHideEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeHideEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeHideEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeHideNavEvent", "url": "YAHOO.widget.Calendar.html#event_beforeHideNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeHideNavEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeHideNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeRenderEvent", "url": "YAHOO.widget.Calendar.html#event_beforeRenderEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeRenderEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeRenderEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeRenderNavEvent", "url": "YAHOO.widget.Calendar.html#event_beforeRenderNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeRenderNavEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeRenderNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeSelectEvent", "url": "YAHOO.widget.Calendar.html#event_beforeSelectEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeSelectEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeSelectEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeShowEvent", "url": "YAHOO.widget.Calendar.html#event_beforeShowEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeShowEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeShowEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeShowNavEvent", "url": "YAHOO.widget.Calendar.html#event_beforeShowNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeShowNavEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeShowNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "browser", "url": "YAHOO.widget.Calendar.html#property_browser", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "buildDayLabel", "url": "YAHOO.widget.Calendar.html#method_buildDayLabel", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_buildMonthLabel", "url": "YAHOO.widget.Calendar.html#method__buildMonthLabel", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "buildMonthLabel", "url": "YAHOO.widget.Calendar.html#method_buildMonthLabel", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "buildWeekdays", "url": "YAHOO.widget.Calendar.html#method_buildWeekdays", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "cal", "url": "YAHOO.widget.CalendarNavigator.html#property_cal", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar2up", "name": "Cal2up", "url": "YAHOO.widget.Calendar2up.html#property_Cal2up", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "callChildFunction", "url": "YAHOO.widget.CalendarGroup.html#method_callChildFunction", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "cancel", "url": "YAHOO.widget.CalendarNavigator.html#method_cancel", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "cancelEl", "url": "YAHOO.widget.CalendarNavigator.html#property_cancelEl", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "cellDates", "url": "YAHOO.widget.Calendar.html#property_cellDates", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "cells", "url": "YAHOO.widget.Calendar.html#property_cells", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "cfg", "url": "YAHOO.widget.Calendar.html#property_cfg", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "cfg", "url": "YAHOO.widget.CalendarGroup.html#property_cfg", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "changePageEvent", "url": "YAHOO.widget.Calendar.html#event_changePageEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "changePageEvent", "url": "YAHOO.widget.CalendarGroup.html#event_changePageEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "clear", "url": "YAHOO.widget.Calendar.html#method_clear", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "clear", "url": "YAHOO.widget.CalendarGroup.html#method_clear", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "clearAllBodyCellStyles", "url": "YAHOO.widget.Calendar.html#method_clearAllBodyCellStyles", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "clearElement", "url": "YAHOO.widget.Calendar.html#method_clearElement", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "clearError", "url": "YAHOO.widget.CalendarNavigator.html#method_clearError", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "clearErrors", "url": "YAHOO.widget.CalendarNavigator.html#method_clearErrors", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "clearEvent", "url": "YAHOO.widget.Calendar.html#event_clearEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "clearEvent", "url": "YAHOO.widget.CalendarGroup.html#event_clearEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "clearYearError", "url": "YAHOO.widget.CalendarNavigator.html#method_clearYearError", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "close", "url": "YAHOO.widget.Calendar.html#config_close", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "close", "url": "YAHOO.widget.CalendarGroup.html#config_close", "type": "config"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "Config", "url": "YAHOO.widget.Calendar.html#property_Config", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configClose", "url": "YAHOO.widget.Calendar.html#method_configClose", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configIframe", "url": "YAHOO.widget.Calendar.html#method_configIframe", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configLocale", "url": "YAHOO.widget.Calendar.html#method_configLocale", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configLocaleValues", "url": "YAHOO.widget.Calendar.html#method_configLocaleValues", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configMaxDate", "url": "YAHOO.widget.Calendar.html#method_configMaxDate", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configMinDate", "url": "YAHOO.widget.Calendar.html#method_configMinDate", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configNavigator", "url": "YAHOO.widget.Calendar.html#method_configNavigator", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configOptions", "url": "YAHOO.widget.Calendar.html#method_configOptions", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configPageDate", "url": "YAHOO.widget.Calendar.html#method_configPageDate", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "configPageDate", "url": "YAHOO.widget.CalendarGroup.html#method_configPageDate", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "configPages", "url": "YAHOO.widget.CalendarGroup.html#method_configPages", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configSelected", "url": "YAHOO.widget.Calendar.html#method_configSelected", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "configSelected", "url": "YAHOO.widget.CalendarGroup.html#method_configSelected", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configStrings", "url": "YAHOO.widget.Calendar.html#method_configStrings", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configTitle", "url": "YAHOO.widget.Calendar.html#method_configTitle", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configToday", "url": "YAHOO.widget.Calendar.html#method_configToday", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "constructChild", "url": "YAHOO.widget.CalendarGroup.html#method_constructChild", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "containerId", "url": "YAHOO.widget.Calendar.html#property_containerId", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "containerId", "url": "YAHOO.widget.CalendarGroup.html#property_containerId", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "createCloseButton", "url": "YAHOO.widget.Calendar.html#method_createCloseButton", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "createMask", "url": "YAHOO.widget.CalendarNavigator.html#method_createMask", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "createNav", "url": "YAHOO.widget.CalendarNavigator.html#method_createNav", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "createTitleBar", "url": "YAHOO.widget.Calendar.html#method_createTitleBar", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "DATE_DELIMITER", "url": "YAHOO.widget.Calendar.html#config_DATE_DELIMITER", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "DATE_DELIMITER", "url": "YAHOO.widget.CalendarGroup.html#config_DATE_DELIMITER", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "DATE_FIELD_DELIMITER", "url": "YAHOO.widget.Calendar.html#config_DATE_FIELD_DELIMITER", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "DATE_FIELD_DELIMITER", "url": "YAHOO.widget.CalendarGroup.html#config_DATE_FIELD_DELIMITER", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "DATE_RANGE_DELIMITER", "url": "YAHOO.widget.Calendar.html#config_DATE_RANGE_DELIMITER", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "DATE_RANGE_DELIMITER", "url": "YAHOO.widget.CalendarGroup.html#config_DATE_RANGE_DELIMITER", "type": "config"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_DEFAULT_CFG", "url": "YAHOO.widget.CalendarNavigator.html#property__DEFAULT_CFG", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "DEFAULT_CONFIG", "url": "YAHOO.widget.CalendarNavigator.html#property_DEFAULT_CONFIG", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "delegateConfig", "url": "YAHOO.widget.CalendarGroup.html#method_delegateConfig", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "deselect", "url": "YAHOO.widget.Calendar.html#method_deselect", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "deselect", "url": "YAHOO.widget.CalendarGroup.html#method_deselect", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "deselectAll", "url": "YAHOO.widget.Calendar.html#method_deselectAll", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "deselectAll", "url": "YAHOO.widget.CalendarGroup.html#method_deselectAll", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "deselectCell", "url": "YAHOO.widget.Calendar.html#method_deselectCell", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "deselectCell", "url": "YAHOO.widget.CalendarGroup.html#method_deselectCell", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "deselectEvent", "url": "YAHOO.widget.Calendar.html#event_deselectEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "deselectEvent", "url": "YAHOO.widget.CalendarGroup.html#event_deselectEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "destroy", "url": "YAHOO.widget.Calendar.html#method_destroy", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "destroy", "url": "YAHOO.widget.CalendarGroup.html#method_destroy", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "destroy", "url": "YAHOO.widget.CalendarNavigator.html#method_destroy", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "destroyEvent", "url": "YAHOO.widget.Calendar.html#event_destroyEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "destroyEvent", "url": "YAHOO.widget.CalendarGroup.html#event_destroyEvent", "type": "event"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_doc", "url": "YAHOO.widget.CalendarNavigator.html#property__doc", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "doCellMouseOut", "url": "YAHOO.widget.Calendar.html#method_doCellMouseOut", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "doCellMouseOver", "url": "YAHOO.widget.Calendar.html#method_doCellMouseOver", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "domEventMap", "url": "YAHOO.widget.Calendar.html#property_domEventMap", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "doNextMonthNav", "url": "YAHOO.widget.Calendar.html#method_doNextMonthNav", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "doPreviousMonthNav", "url": "YAHOO.widget.Calendar.html#method_doPreviousMonthNav", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "doSelectCell", "url": "YAHOO.widget.Calendar.html#method_doSelectCell", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "erase", "url": "YAHOO.widget.CalendarNavigator.html#method_erase", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "errorEl", "url": "YAHOO.widget.CalendarNavigator.html#property_errorEl", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_fieldArraysAreEqual", "url": "YAHOO.widget.Calendar.html#method__fieldArraysAreEqual", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "firstCtrl", "url": "YAHOO.widget.CalendarNavigator.html#property_firstCtrl", "type": "property"}, {"access": "private", "host": "YAHOO.widget.CalendarGroup", "name": "_fixWidth", "url": "YAHOO.widget.CalendarGroup.html#method__fixWidth", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "getCalendarPage", "url": "YAHOO.widget.CalendarGroup.html#method_getCalendarPage", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "getCellIndex", "url": "YAHOO.widget.Calendar.html#method_getCellIndex", "type": "method"}, {"access": "private", "host": "YAHOO.widget.CalendarNavigator", "name": "__getCfg", "url": "YAHOO.widget.CalendarNavigator.html#method___getCfg", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "getDateByCellId", "url": "YAHOO.widget.Calendar.html#method_getDateByCellId", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "getDateFieldsByCellId", "url": "YAHOO.widget.Calendar.html#method_getDateFieldsByCellId", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "getIndexFromId", "url": "YAHOO.widget.Calendar.html#method_getIndexFromId", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "getMonth", "url": "YAHOO.widget.CalendarNavigator.html#method_getMonth", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_getMonthFromUI", "url": "YAHOO.widget.CalendarNavigator.html#method__getMonthFromUI", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "getSelectedDates", "url": "YAHOO.widget.Calendar.html#method_getSelectedDates", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "getSelectedDates", "url": "YAHOO.widget.CalendarGroup.html#method_getSelectedDates", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "getYear", "url": "YAHOO.widget.CalendarNavigator.html#method_getYear", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_getYearFromUI", "url": "YAHOO.widget.CalendarNavigator.html#method__getYearFromUI", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_handleDirectionKeys", "url": "YAHOO.widget.CalendarNavigator.html#method__handleDirectionKeys", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_handleEnterKey", "url": "YAHOO.widget.CalendarNavigator.html#method__handleEnterKey", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_handleShiftTabKey", "url": "YAHOO.widget.CalendarNavigator.html#method__handleShiftTabKey", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_handleTabKey", "url": "YAHOO.widget.CalendarNavigator.html#method__handleTabKey", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "hide", "url": "YAHOO.widget.Calendar.html#method_hide", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "hide", "url": "YAHOO.widget.CalendarNavigator.html#method_hide", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "HIDE_BLANK_WEEKS", "url": "YAHOO.widget.Calendar.html#config_HIDE_BLANK_WEEKS", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "HIDE_BLANK_WEEKS", "url": "YAHOO.widget.CalendarGroup.html#config_HIDE_BLANK_WEEKS", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "hideEvent", "url": "YAHOO.widget.Calendar.html#event_hideEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "hideEvent", "url": "YAHOO.widget.CalendarGroup.html#event_hideEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "hideMask", "url": "YAHOO.widget.CalendarNavigator.html#method_hideMask", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "hideNavEvent", "url": "YAHOO.widget.Calendar.html#event_hideNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "hideNavEvent", "url": "YAHOO.widget.CalendarGroup.html#event_hideNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "id", "url": "YAHOO.widget.Calendar.html#property_id", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "id", "url": "YAHOO.widget.CalendarGroup.html#property_id", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "id", "url": "YAHOO.widget.CalendarNavigator.html#property_id", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "iframe", "url": "YAHOO.widget.Calendar.html#config_iframe", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "iframe", "url": "YAHOO.widget.CalendarGroup.html#config_iframe", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "index", "url": "YAHOO.widget.Calendar.html#property_index", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_indexOfSelectedFieldArray", "url": "YAHOO.widget.Calendar.html#method__indexOfSelectedFieldArray", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "init", "url": "YAHOO.widget.Calendar.html#method_init", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "init", "url": "YAHOO.widget.CalendarGroup.html#method_init", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "init", "url": "YAHOO.widget.CalendarNavigator.html#method_init", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "initEvents", "url": "YAHOO.widget.Calendar.html#method_initEvents", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "initEvents", "url": "YAHOO.widget.CalendarGroup.html#method_initEvents", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "initStyles", "url": "YAHOO.widget.Calendar.html#method_initStyles", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "isDateOOB", "url": "YAHOO.widget.Calendar.html#method_isDateOOB", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "isDateOOM", "url": "YAHOO.widget.Calendar.html#method_isDateOOM", "type": "method"}, {"access": "private", "host": "YAHOO.widget.CalendarNavigator", "name": "__isIEQuirks", "url": "YAHOO.widget.CalendarNavigator.html#property___isIEQuirks", "type": "property"}, {"access": "private", "host": "YAHOO.widget.CalendarNavigator", "name": "__isMac", "url": "YAHOO.widget.CalendarNavigator.html#property___isMac", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "lastCtrl", "url": "YAHOO.widget.CalendarNavigator.html#property_lastCtrl", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Locale", "url": "YAHOO.widget.Calendar.html#property_Locale", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "Locale", "url": "YAHOO.widget.CalendarGroup.html#property_Locale", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "LOCALE_MONTHS", "url": "YAHOO.widget.Calendar.html#config_LOCALE_MONTHS", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "LOCALE_MONTHS", "url": "YAHOO.widget.CalendarGroup.html#config_LOCALE_MONTHS", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "LOCALE_WEEKDAYS", "url": "YAHOO.widget.Calendar.html#config_LOCALE_WEEKDAYS", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "LOCALE_WEEKDAYS", "url": "YAHOO.widget.CalendarGroup.html#config_LOCALE_WEEKDAYS", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "maskEl", "url": "YAHOO.widget.CalendarNavigator.html#property_maskEl", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "maxdate", "url": "YAHOO.widget.Calendar.html#config_maxdate", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "maxdate", "url": "YAHOO.widget.CalendarGroup.html#config_maxdate", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MD_DAY_POSITION", "url": "YAHOO.widget.Calendar.html#config_MD_DAY_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MD_DAY_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MD_DAY_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MD_MONTH_POSITION", "url": "YAHOO.widget.Calendar.html#config_MD_MONTH_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MD_MONTH_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MD_MONTH_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MDY_DAY_POSITION", "url": "YAHOO.widget.Calendar.html#config_MDY_DAY_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MDY_DAY_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MDY_DAY_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MDY_MONTH_POSITION", "url": "YAHOO.widget.Calendar.html#config_MDY_MONTH_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MDY_MONTH_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MDY_MONTH_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MDY_YEAR_POSITION", "url": "YAHOO.widget.Calendar.html#config_MDY_YEAR_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MDY_YEAR_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MDY_YEAR_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "mindate", "url": "YAHOO.widget.Calendar.html#config_mindate", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "mindate", "url": "YAHOO.widget.CalendarGroup.html#config_mindate", "type": "config"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_month", "url": "YAHOO.widget.CalendarNavigator.html#property__month", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "monthEl", "url": "YAHOO.widget.CalendarNavigator.html#property_monthEl", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MONTHS_LONG", "url": "YAHOO.widget.Calendar.html#config_MONTHS_LONG", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MONTHS_LONG", "url": "YAHOO.widget.CalendarGroup.html#config_MONTHS_LONG", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MONTHS_SHORT", "url": "YAHOO.widget.Calendar.html#config_MONTHS_SHORT", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MONTHS_SHORT", "url": "YAHOO.widget.CalendarGroup.html#config_MONTHS_SHORT", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MULTI_SELECT", "url": "YAHOO.widget.Calendar.html#config_MULTI_SELECT", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MULTI_SELECT", "url": "YAHOO.widget.CalendarGroup.html#config_MULTI_SELECT", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MY_LABEL_MONTH_POSITION", "url": "YAHOO.widget.Calendar.html#config_MY_LABEL_MONTH_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MY_LABEL_MONTH_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MY_LABEL_MONTH_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MY_LABEL_MONTH_SUFFIX", "url": "YAHOO.widget.Calendar.html#config_MY_LABEL_MONTH_SUFFIX", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MY_LABEL_MONTH_SUFFIX", "url": "YAHOO.widget.CalendarGroup.html#config_MY_LABEL_MONTH_SUFFIX", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MY_LABEL_YEAR_POSITION", "url": "YAHOO.widget.Calendar.html#config_MY_LABEL_YEAR_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MY_LABEL_YEAR_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MY_LABEL_YEAR_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MY_LABEL_YEAR_SUFFIX", "url": "YAHOO.widget.Calendar.html#config_MY_LABEL_YEAR_SUFFIX", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MY_LABEL_YEAR_SUFFIX", "url": "YAHOO.widget.CalendarGroup.html#config_MY_LABEL_YEAR_SUFFIX", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MY_MONTH_POSITION", "url": "YAHOO.widget.Calendar.html#config_MY_MONTH_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MY_MONTH_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MY_MONTH_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MY_YEAR_POSITION", "url": "YAHOO.widget.Calendar.html#config_MY_YEAR_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MY_YEAR_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MY_YEAR_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "NAV", "url": "YAHOO.widget.CalendarGroup.html#config_NAV", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "NAV_ARROW_LEFT", "url": "YAHOO.widget.Calendar.html#config_NAV_ARROW_LEFT", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "NAV_ARROW_LEFT", "url": "YAHOO.widget.CalendarGroup.html#config_NAV_ARROW_LEFT", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "NAV_ARROW_RIGHT", "url": "YAHOO.widget.Calendar.html#config_NAV_ARROW_RIGHT", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "NAV_ARROW_RIGHT", "url": "YAHOO.widget.CalendarGroup.html#config_NAV_ARROW_RIGHT", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "navEl", "url": "YAHOO.widget.CalendarNavigator.html#property_navEl", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "navigator", "url": "YAHOO.widget.Calendar.html#config_navigator", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "nextMonth", "url": "YAHOO.widget.Calendar.html#method_nextMonth", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "nextMonth", "url": "YAHOO.widget.CalendarGroup.html#method_nextMonth", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "nextYear", "url": "YAHOO.widget.Calendar.html#method_nextYear", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "nextYear", "url": "YAHOO.widget.CalendarGroup.html#method_nextYear", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "oDomContainer", "url": "YAHOO.widget.Calendar.html#property_oDomContainer", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "oNavigator", "url": "YAHOO.widget.Calendar.html#property_oNavigator", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "onBeforeDeselect", "url": "YAHOO.widget.Calendar.html#method_onBeforeDeselect", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "onBeforeSelect", "url": "YAHOO.widget.Calendar.html#method_onBeforeSelect", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "onChangePage", "url": "YAHOO.widget.Calendar.html#method_onChangePage", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "onClear", "url": "YAHOO.widget.Calendar.html#method_onClear", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "onDeselect", "url": "YAHOO.widget.Calendar.html#method_onDeselect", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "onRender", "url": "YAHOO.widget.Calendar.html#method_onRender", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "onReset", "url": "YAHOO.widget.Calendar.html#method_onReset", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "onSelect", "url": "YAHOO.widget.Calendar.html#method_onSelect", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Options", "url": "YAHOO.widget.Calendar.html#property_Options", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "Options", "url": "YAHOO.widget.CalendarGroup.html#property_Options", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "pagedate", "url": "YAHOO.widget.Calendar.html#config_pagedate", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "pagedate", "url": "YAHOO.widget.CalendarGroup.html#config_pagedate", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "pages", "url": "YAHOO.widget.CalendarGroup.html#property_pages", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "pages", "url": "YAHOO.widget.CalendarGroup.html#config_pages", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "parent", "url": "YAHOO.widget.Calendar.html#property_parent", "type": "property"}, {"access": "protected", "host": "YAHOO.widget.Calendar", "name": "_parseArgs", "url": "YAHOO.widget.Calendar.html#method__parseArgs", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_parseDate", "url": "YAHOO.widget.Calendar.html#method__parseDate", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_parseDates", "url": "YAHOO.widget.Calendar.html#method__parseDates", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_parsePageDate", "url": "YAHOO.widget.Calendar.html#method__parsePageDate", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_parseRange", "url": "YAHOO.widget.Calendar.html#method__parseRange", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "previousMonth", "url": "YAHOO.widget.Calendar.html#method_previousMonth", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "previousMonth", "url": "YAHOO.widget.CalendarGroup.html#method_previousMonth", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "previousYear", "url": "YAHOO.widget.Calendar.html#method_previousYear", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "previousYear", "url": "YAHOO.widget.CalendarGroup.html#method_previousYear", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "purgeKeyListeners", "url": "YAHOO.widget.CalendarNavigator.html#method_purgeKeyListeners", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "purgeListeners", "url": "YAHOO.widget.CalendarNavigator.html#method_purgeListeners", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "refreshLocale", "url": "YAHOO.widget.Calendar.html#method_refreshLocale", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "removeCloseButton", "url": "YAHOO.widget.Calendar.html#method_removeCloseButton", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "removeRenderers", "url": "YAHOO.widget.Calendar.html#method_removeRenderers", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "removeRenderers", "url": "YAHOO.widget.CalendarGroup.html#method_removeRenderers", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "removeTitleBar", "url": "YAHOO.widget.Calendar.html#method_removeTitleBar", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "render", "url": "YAHOO.widget.Calendar.html#method_render", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "render", "url": "YAHOO.widget.CalendarGroup.html#method_render", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "render", "url": "YAHOO.widget.CalendarNavigator.html#method_render", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderBody", "url": "YAHOO.widget.Calendar.html#method_renderBody", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderBodyCellRestricted", "url": "YAHOO.widget.Calendar.html#method_renderBodyCellRestricted", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "renderButton", "url": "YAHOO.widget.CalendarNavigator.html#method_renderButton", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderCellDefault", "url": "YAHOO.widget.Calendar.html#method_renderCellDefault", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderCellNotThisMonth", "url": "YAHOO.widget.Calendar.html#method_renderCellNotThisMonth", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleHighlight1", "url": "YAHOO.widget.Calendar.html#method_renderCellStyleHighlight1", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleHighlight2", "url": "YAHOO.widget.Calendar.html#method_renderCellStyleHighlight2", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleHighlight3", "url": "YAHOO.widget.Calendar.html#method_renderCellStyleHighlight3", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleHighlight4", "url": "YAHOO.widget.Calendar.html#method_renderCellStyleHighlight4", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleSelected", "url": "YAHOO.widget.Calendar.html#method_renderCellStyleSelected", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleToday", "url": "YAHOO.widget.Calendar.html#method_renderCellStyleToday", "type": "method"}, {"access": "private", "host": "YAHOO.widget.CalendarNavigator", "name": "__rendered", "url": "YAHOO.widget.CalendarNavigator.html#property___rendered", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderEvent", "url": "YAHOO.widget.Calendar.html#event_renderEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "renderEvent", "url": "YAHOO.widget.CalendarGroup.html#event_renderEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderFooter", "url": "YAHOO.widget.Calendar.html#method_renderFooter", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "renderFooter", "url": "YAHOO.widget.CalendarGroup.html#method_renderFooter", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderHeader", "url": "YAHOO.widget.Calendar.html#method_renderHeader", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "renderHeader", "url": "YAHOO.widget.CalendarGroup.html#method_renderHeader", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "renderNavContents", "url": "YAHOO.widget.CalendarNavigator.html#method_renderNavContents", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderNavEvent", "url": "YAHOO.widget.Calendar.html#event_renderNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "renderNavEvent", "url": "YAHOO.widget.CalendarGroup.html#event_renderNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderOutOfBoundsDate", "url": "YAHOO.widget.Calendar.html#method_renderOutOfBoundsDate", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderRowFooter", "url": "YAHOO.widget.Calendar.html#method_renderRowFooter", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderRowHeader", "url": "YAHOO.widget.Calendar.html#method_renderRowHeader", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_renderStack", "url": "YAHOO.widget.Calendar.html#property__renderStack", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderStack", "url": "YAHOO.widget.Calendar.html#property_renderStack", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "renderYear", "url": "YAHOO.widget.CalendarNavigator.html#method_renderYear", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "reset", "url": "YAHOO.widget.Calendar.html#method_reset", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "reset", "url": "YAHOO.widget.CalendarGroup.html#method_reset", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "resetEvent", "url": "YAHOO.widget.Calendar.html#event_resetEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "resetEvent", "url": "YAHOO.widget.CalendarGroup.html#event_resetEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "resetRenderers", "url": "YAHOO.widget.Calendar.html#method_resetRenderers", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "select", "url": "YAHOO.widget.Calendar.html#method_select", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "select", "url": "YAHOO.widget.CalendarGroup.html#method_select", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "selectCell", "url": "YAHOO.widget.Calendar.html#method_selectCell", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "selectCell", "url": "YAHOO.widget.CalendarGroup.html#method_selectCell", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "selected", "url": "YAHOO.widget.Calendar.html#config_selected", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "selected", "url": "YAHOO.widget.CalendarGroup.html#config_selected", "type": "config"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_selectedDates", "url": "YAHOO.widget.Calendar.html#property__selectedDates", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "selectEvent", "url": "YAHOO.widget.Calendar.html#event_selectEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "selectEvent", "url": "YAHOO.widget.CalendarGroup.html#event_selectEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "setChildFunction", "url": "YAHOO.widget.CalendarGroup.html#method_setChildFunction", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "setError", "url": "YAHOO.widget.CalendarNavigator.html#method_setError", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_setFirstLastElements", "url": "YAHOO.widget.CalendarNavigator.html#method__setFirstLastElements", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "setInitialFocus", "url": "YAHOO.widget.CalendarNavigator.html#method_setInitialFocus", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "setMonth", "url": "YAHOO.widget.Calendar.html#method_setMonth", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "setMonth", "url": "YAHOO.widget.CalendarGroup.html#method_setMonth", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "setMonth", "url": "YAHOO.widget.CalendarNavigator.html#method_setMonth", "type": "method"}, {"access": "private", "host": "YAHOO.widget.CalendarGroup", "name": "_setMonthOnDate", "url": "YAHOO.widget.CalendarGroup.html#method__setMonthOnDate", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "setYear", "url": "YAHOO.widget.Calendar.html#method_setYear", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "setYear", "url": "YAHOO.widget.CalendarGroup.html#method_setYear", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "setYear", "url": "YAHOO.widget.CalendarNavigator.html#method_setYear", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "setYearError", "url": "YAHOO.widget.CalendarNavigator.html#method_setYearError", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "show", "url": "YAHOO.widget.Calendar.html#method_show", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_show", "url": "YAHOO.widget.CalendarNavigator.html#method__show", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "show", "url": "YAHOO.widget.CalendarNavigator.html#method_show", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "showEvent", "url": "YAHOO.widget.Calendar.html#event_showEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "showEvent", "url": "YAHOO.widget.CalendarGroup.html#event_showEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "showMask", "url": "YAHOO.widget.CalendarNavigator.html#method_showMask", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "showNavEvent", "url": "YAHOO.widget.Calendar.html#event_showNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "showNavEvent", "url": "YAHOO.widget.CalendarGroup.html#event_showNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "SHOW_WEEKDAYS", "url": "YAHOO.widget.Calendar.html#config_SHOW_WEEKDAYS", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "SHOW_WEEKDAYS", "url": "YAHOO.widget.CalendarGroup.html#config_SHOW_WEEKDAYS", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "SHOW_WEEK_FOOTER", "url": "YAHOO.widget.Calendar.html#config_SHOW_WEEK_FOOTER", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "SHOW_WEEK_FOOTER", "url": "YAHOO.widget.CalendarGroup.html#config_SHOW_WEEK_FOOTER", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "SHOW_WEEK_HEADER", "url": "YAHOO.widget.Calendar.html#config_SHOW_WEEK_HEADER", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "SHOW_WEEK_HEADER", "url": "YAHOO.widget.CalendarGroup.html#config_SHOW_WEEK_HEADER", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "START_WEEKDAY", "url": "YAHOO.widget.Calendar.html#config_START_WEEKDAY", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "START_WEEKDAY", "url": "YAHOO.widget.CalendarGroup.html#config_START_WEEKDAY", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "strings", "url": "YAHOO.widget.Calendar.html#config_strings", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "strings", "url": "YAHOO.widget.CalendarGroup.html#config_strings", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "styleCellDefault", "url": "YAHOO.widget.Calendar.html#method_styleCellDefault", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_BODY", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_BODY", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CALENDAR", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CALENDAR", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_BOTTOM", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_BOTTOM", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_HIGHLIGHT1", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_HIGHLIGHT1", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_HIGHLIGHT2", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_HIGHLIGHT2", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_HIGHLIGHT3", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_HIGHLIGHT3", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_HIGHLIGHT4", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_HIGHLIGHT4", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_HOVER", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_HOVER", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_LEFT", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_LEFT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_OOB", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_OOB", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_OOM", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_OOM", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_RESTRICTED", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_RESTRICTED", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_RIGHT", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_RIGHT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_SELECTABLE", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_SELECTABLE", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_SELECTED", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_SELECTED", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_SELECTOR", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_SELECTOR", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_TODAY", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_TODAY", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_TOP", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_TOP", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CLOSE", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CLOSE", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CONTAINER", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CONTAINER", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_FIXED_SIZE", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_FIXED_SIZE", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_FOOTER", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_FOOTER", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_HEADER", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_HEADER", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_HEADER_TEXT", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_HEADER_TEXT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_LINK_CLOSE", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_LINK_CLOSE", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_NAV", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_NAV", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_NAV_LEFT", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_NAV_LEFT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_NAV_RIGHT", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_NAV_RIGHT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_ROW_FOOTER", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_ROW_FOOTER", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_ROW_HEADER", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_ROW_HEADER", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_SINGLE", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_SINGLE", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_WEEKDAY_CELL", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_WEEKDAY_CELL", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_WEEKDAY_ROW", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_WEEKDAY_ROW", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_WITH_TITLE", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_WITH_TITLE", "type": "property"}, {"access": "private", "host": "YAHOO.widget.CalendarGroup", "name": "sub", "url": "YAHOO.widget.CalendarGroup.html#method_sub", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "submit", "url": "YAHOO.widget.CalendarNavigator.html#method_submit", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "submitEl", "url": "YAHOO.widget.CalendarNavigator.html#property_submitEl", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "subtractMonths", "url": "YAHOO.widget.Calendar.html#method_subtractMonths", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "subtractMonths", "url": "YAHOO.widget.CalendarGroup.html#method_subtractMonths", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "subtractYears", "url": "YAHOO.widget.Calendar.html#method_subtractYears", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "subtractYears", "url": "YAHOO.widget.CalendarGroup.html#method_subtractYears", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_syncMask", "url": "YAHOO.widget.CalendarNavigator.html#method__syncMask", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "title", "url": "YAHOO.widget.Calendar.html#config_title", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "title", "url": "YAHOO.widget.CalendarGroup.html#config_title", "type": "config"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_toDate", "url": "YAHOO.widget.Calendar.html#method__toDate", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "toDate", "url": "YAHOO.widget.Calendar.html#method_toDate", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "today", "url": "YAHOO.widget.Calendar.html#property_today", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "today", "url": "YAHOO.widget.Calendar.html#config_today", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "today", "url": "YAHOO.widget.CalendarGroup.html#config_today", "type": "config"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_toFieldArray", "url": "YAHOO.widget.Calendar.html#method__toFieldArray", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "toString", "url": "YAHOO.widget.Calendar.html#method_toString", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "toString", "url": "YAHOO.widget.CalendarGroup.html#method_toString", "type": "method"}, {"access": "private", "host": "YAHOO.widget.CalendarGroup", "name": "unsub", "url": "YAHOO.widget.CalendarGroup.html#method_unsub", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_update", "url": "YAHOO.widget.CalendarNavigator.html#method__update", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_updateMonthUI", "url": "YAHOO.widget.CalendarNavigator.html#method__updateMonthUI", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_updateYearUI", "url": "YAHOO.widget.CalendarNavigator.html#method__updateYearUI", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "validate", "url": "YAHOO.widget.Calendar.html#method_validate", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "validate", "url": "YAHOO.widget.CalendarNavigator.html#method_validate", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "WEEKDAYS_1CHAR", "url": "YAHOO.widget.Calendar.html#config_WEEKDAYS_1CHAR", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "WEEKDAYS_1CHAR", "url": "YAHOO.widget.CalendarGroup.html#config_WEEKDAYS_1CHAR", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "WEEKDAYS_LONG", "url": "YAHOO.widget.Calendar.html#config_WEEKDAYS_LONG", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "WEEKDAYS_LONG", "url": "YAHOO.widget.CalendarGroup.html#config_WEEKDAYS_LONG", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "WEEKDAYS_MEDIUM", "url": "YAHOO.widget.Calendar.html#config_WEEKDAYS_MEDIUM", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "WEEKDAYS_MEDIUM", "url": "YAHOO.widget.CalendarGroup.html#config_WEEKDAYS_MEDIUM", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "WEEKDAYS_SHORT", "url": "YAHOO.widget.Calendar.html#config_WEEKDAYS_SHORT", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "WEEKDAYS_SHORT", "url": "YAHOO.widget.CalendarGroup.html#config_WEEKDAYS_SHORT", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.DATE", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.DATE", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar._DEFAULT_CONFIG", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar._DEFAULT_CONFIG", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.DEFAULT_CONFIG", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.DEFAULT_CONFIG", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.DISPLAY_DAYS", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.DISPLAY_DAYS", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar._EVENT_TYPES", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar._EVENT_TYPES", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup.CSS_2UPCLOSE", "url": "YAHOO.widget.CalendarGroup.html#property_YAHOO.widget.CalendarGroup.CSS_2UPCLOSE", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup.CSS_2UPTITLE", "url": "YAHOO.widget.CalendarGroup.html#property_YAHOO.widget.CalendarGroup.CSS_2UPTITLE", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup.CSS_CONTAINER", "url": "YAHOO.widget.CalendarGroup.html#property_YAHOO.widget.CalendarGroup.CSS_CONTAINER", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup.CSS_MULTI_UP", "url": "YAHOO.widget.CalendarGroup.html#property_YAHOO.widget.CalendarGroup.CSS_MULTI_UP", "type": "property"}, {"access": "private", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup._DEFAULT_CONFIG", "url": "YAHOO.widget.CalendarGroup.html#property_YAHOO.widget.CalendarGroup._DEFAULT_CONFIG", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup.DEFAULT_CONFIG", "url": "YAHOO.widget.CalendarGroup.html#property_YAHOO.widget.CalendarGroup.DEFAULT_CONFIG", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.IMG_ROOT", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.IMG_ROOT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.LONG", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.LONG", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.MEDIUM", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.MEDIUM", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.MONTH", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.MONTH", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.MONTH_DAY", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.MONTH_DAY", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CANCEL_SUFFIX", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CANCEL_SUFFIX", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.BUTTON", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.BUTTON", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.BUTTONS", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.BUTTONS", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.DEFAULT", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.DEFAULT", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.ERROR", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.ERROR", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.INVALID", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.INVALID", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.MASK", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.MASK", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.MONTH", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.MONTH", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.MONTH_CTRL", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.MONTH_CTRL", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.NAV", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.NAV", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.NAV_VISIBLE", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.NAV_VISIBLE", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.YEAR", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.YEAR", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.YEAR_CTRL", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.YEAR_CTRL", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.ERROR_SUFFIX", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.ERROR_SUFFIX", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.ID_SUFFIX", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.ID_SUFFIX", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.MONTH_SUFFIX", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.MONTH_SUFFIX", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.SUBMIT_SUFFIX", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.SUBMIT_SUFFIX", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.TRIM", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.TRIM", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.UPDATE_DELAY", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.UPDATE_DELAY", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.YEAR_SUFFIX", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.YEAR_SUFFIX", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.YR_MAJOR_INC", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.YR_MAJOR_INC", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.YR_MAX_DIGITS", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.YR_MAX_DIGITS", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.YR_MINOR_INC", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.YR_MINOR_INC", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.YR_PATTERN", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.YR_PATTERN", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.ONE_CHAR", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.ONE_CHAR", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.RANGE", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.RANGE", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.SHORT", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.SHORT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.STOP_RENDER", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.STOP_RENDER", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar._STYLES", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar._STYLES", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.STYLES", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.STYLES", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.WEEKDAY", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.WEEKDAY", "type": "property"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_year", "url": "YAHOO.widget.CalendarNavigator.html#property__year", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "yearEl", "url": "YAHOO.widget.CalendarNavigator.html#property_yearEl", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YEAR_OFFSET", "url": "YAHOO.widget.Calendar.html#config_YEAR_OFFSET", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "year_offset", "url": "YAHOO.widget.CalendarGroup.html#config_year_offset", "type": "config"}];
</script>
</body>
</html>
